1

基本上,在我的过程中,MeasureOverride我想检查我的子元素是否设置了某个属性,无论它是什么类型的项目。

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

如何以一种方式做到这一点,以确保孩子拥有可用的财产,然后获得它的价值?问题是 UIElement 没有 IsSelected 属性,面板可以接受任何支持该属性的子元素,所以我不能只转换为特定类型......


好吧,我正在研究两种可能的情况:

1) 孩子没有将自己添加为Selector.IsSelectedDependencyProperty 的所有者,在这种情况下,孩子会被完全忽略。2)孩子确实将自己添加为Selector.IsSelectedDependencyProperty 的所有者,在这种情况下,我想要那个值。

基本上,我想要 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 回答