2013-07-18 62 views
1

我想將來自特定元素的ItemsSource屬性用作另一個元素的MultiBinding中的一個綁定。這是我到目前爲止有:在MultiBinding中使用另一個元素的ItemsSource屬性

<Label> 
    <Label.Content> 
    <MultiBinding Converter="{converters:myMultiValueConverter}"> 
     <Binding Path="PageIndex" /> 
     <Binding ElementName="anotherElement" Path="ItemsSource"/> 
    </MultiBinding> 
    </Label.Content> 
</Label> 

(當ItemsSource初始設置)只能用一次,但結合無法更新時綁定到原始元素的ItemsSource財產ObservableCollection有添加或刪除的項目。這種綁定可能嗎?

+2

這聽起來很像我想在ViewModel級別解決的問題。你的'myMultiValueConverter'是做什麼的? –

+0

與@HighCore一致 - 您將邏輯放在您的視圖中,本質上 - 您應該將其提升到您的ViewModel並在那裏處理。 – JerKimball

回答

4

添加一個虛擬的結合( - 你並不需要的價值 - )這樣迫使MultiBinding重新評估:

<Binding ElementName="anotherElement" Path="ItemsSource.Count"/> 

編輯:只注意到一個缺陷:如果移動的項目,不會註冊,如果這不改變Count財產之間,也許這是與你有關。在這種情況下,您可以綁定到您自己的假人,您可以在CollectionChanged上觸發更改通知(儘管如此,並非所有人都清楚)。

您可能需要考慮HighCore的建議,即get -only屬性,該屬性返回您在其所依賴的所有地方手動激活的計算值,通常非常方便。

+0

這很巧妙。 – McGarnagle

+0

非常好,只是我需要的。在我的具體情況中,我不必擔心物品移動 - 他們只會被添加或刪除。 –

+0

@friendlycello:很高興聽到那個工作,然後:) –

相關問題