2016-05-30 33 views
1

場景:我有2個網格。 1是父母,2是孩子。在每一行Mouseover我打電話給一個轉換器。當選擇父記錄時,後續的子記錄顯示在子網格中。在子行的鼠標懸停時,它會調用轉換器。即使目標特性值沒有改變,呼叫轉換器

期:我面臨的問題是多個父母記錄可能有同一個孩子。我希望在針對不同父級顯示chid時強制調用轉換器,但是當子級相同時,由於目標屬性未更改,因此不會調用轉換器。

例如:網格1有父記錄A和B.記錄A有2個孩子。

記錄答:1)Comman兒童

記錄B:1)一般兒童2)記錄b兒童

在選擇行A,然後共同的onmouseover子進程調用該轉換器。當選擇記錄B時,它將只爲Record B Child而不是Common孩子調用轉換器。由於價值沒有改變。

PS:孩子被放置在ChildsObservableCollection中,選擇過濾器集合從childObservableCollection填充。 filtercollection被綁定到子網格。

我知道它是轉換器的默認行爲,它只在目標屬性值被更改時調用,但在這裏我想強制地調用轉換器進行行綁定/更改。任何想法? 在此先感謝。

回答

0

您可以嘗試強制更新綁定目標。我用TextBlocktbTest寫了一些例子。

<TextBlock Name="tbTest" Text="{Binding TestInt, Converter={StaticResource intToStr}}" /> 

後面的代碼看起來像這樣。 UpdateTarget()導致Conveter.Convert致電。

var bindingExpression = tbTest.GetBindingExpression(TextBlock.TextProperty); 
bindingExpression.UpdateTarget();