场景:我有2个网格。 1是父母,2是孩子。鼠标悬停在每一行上我都在调用转换器。当选择父级记录时,后续子记录将显示在子网格中。在子行的鼠标悬停时,它调用转换器。
问题:我面临的问题是多个父母的记录可能有同一个孩子。我想在为不同父级显示chid时强行调用converter,但是当child相同时,它没有调用转换器,因为目标属性没有被更改。
示例:网格1有父记录A和B.记录A有2个子节点。
记录A:1)Comman Child
记录B:1)普通儿童2)记录B儿童
选择行A然后onmouseover普通子调用转换器。当选择记录B时,它仅为记录B子项而不是普通子项调用转换器。因为价值没有改变。
PS:将Childs放在ChildsObservableCollection中,并从childObservableCollection中填充选择filtercollection。 filtercollection与子网格有界。
我知道转换器的默认行为是它只在目标属性值改变时被调用,但在这里我想在行绑定/更改时强制调用转换器。任何的想法? 在此先感谢。
答案 0 :(得分:0)
您可以尝试强制更新绑定目标。我用TextBlock
tbTest
写了一些例子。
<TextBlock Name="tbTest" Text="{Binding TestInt, Converter={StaticResource intToStr}}" />
背后的代码看起来像这样。 UpdateTarget()
会导致Conveter.Convert
致电。
var bindingExpression = tbTest.GetBindingExpression( TextBlock.TextProperty );
bindingExpression.UpdateTarget();