1

基本的に、MeasureOverrideアイテムの種類に関係なく、子要素に特定のプロパティが設定されているかどうかを確認したいと思います。

public override Size MeasureOverride(Size availableSize)
{
    foreach (UIElement child in InternalChildren)
    {
        //Check for IsSelected property?
    }
}

子供が利用可能なプロパティを持っていることを確認し、その値を取得する方法でこれをどのように行うでしょうか?問題は、UIElementにIsSelectedプロパティがなく、パネルがそのプロパティをサポートするすべての子を受け入れることができるため、特定のタイプにキャストすることはできないということです...


さて、私は2つの可能なシナリオを見ています:

1)子は自分自身をDependencyPropertyの所有者として追加しませんでしたSelector.IsSelected。この場合、その子は完全に無視されます。2)子はDependencyPropertyの所有者として自分自身を追加しましたSelector.IsSelected。その場合、私はその値が必要です。

基本的に、IsSelected値が必要ですが、その子要素に関連付けられた値がない場合にアプリがクラッシュするのを防ぎます。

4

2 に答える 2

2

Selector.IsSelected添付物件の価値をお探しですか?もしそうなら、以下が役に立ちます:

bool isSelected = (bool)child.GetValue(Selector.IsSelectedProperty);
于 2011-05-20T15:05:23.830 に答える
0

あなたは試すことができますtypeof(child).GetProperty("IsSelected")

ここにMSDNの例があり、これも役立つかもしれません。

于 2011-05-20T14:41:16.983 に答える