附加属性清除本地值但xaml不刷新

时间:2011-09-22 09:26:04

标签: wpf attached-properties

我在OrderableStack类中派生了StackPanel类。

我的目标是允许Stack的子项将名为'First'的附加属性设置为true,这样该子项就成为堆栈中的第一个元素。

当附加属性设置为true时,将调用元数据中定义的PropertyChangedCallback过程,它首先从堆栈中删除子元素,然后将其插入位置0.最后,所有其他子元素都具有其“第一个”附加属性设为假。

它有效,但是:

- 如果我在VS 2010中显示附加属性已在xaml中定义,则VS 2010表示“未设置引用...”

-i可以检查除了定义为“first”的子项之外的所有其他子项在“属性”窗口中将其OrderableStack.First设置为false,但不更新xaml。如此多的孩子可以将OrderableStack.First附加属性设置为true(在XAML中),即使实际上只有最后一个要设置的子项具有True值。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

  

如果在我在VS 2010中显示附加属性时已在xaml中定义,则VS 2010表示“未设置引用...”

这会阻止您构建和运行您的应用吗?您可以避免此“设计器”错误的方法是对附加属性的PropertyChangedCallback代码进行一些可空性检查。

  

我可以检查每个其他孩子,除了定义为'第一个'的孩子   ,在属性窗口中将OrderableStack.First设置为false,   但 xaml未更新

我没有得到最后一点。您是否希望您的XAML设计师在设计模式中“模拟”排序?然后最好的候选设计师是XAML Pad或Expression Blend。可爱的Visual Studio设计师并不是最好的设计师。它们也不会“模拟”动画/触发器。

我希望这会有所帮助。