2012-06-01 60 views
1

由於時間較晚,我可能會丟失明顯的東西。對我的字典持續更改

我有這樣定義Dictionary<string,MyObject>其中MyObject有一個屬性bool IsFavoriate

最初在頁面加載我查詢我的web服務的字典,並與任何新的對象更新詞典並保存這IsolatedStorage。

對於UI,我綁定的字典到一個ItemsControl在那裏我有一個複選框:

<ItemsControl ItemsSource="{Binding Categories, Mode=TwoWay}"> 
    <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <CheckBox IsChecked="{Binding Value.IsFavorite}" Content="{Binding Key}" /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
</ItemsControl> 

這種結合的罰款。然而,當我選擇一個複選框時,我想讓我的詞典更新。

我可能需要在MyObject的房產?也許我現在就給那一槍。

回答

2

您需要實現您MyObjectINotifyPropertyChanged接口,並從其中後者可以通過編程更新(初始種羣後)情況下,您IsFavorite屬性setter提高PropertyChanged事件,並且希望IsChecked屬性( CheckBox的視覺狀態)將隨您的更改而更新。對於你的情況,你希望更新以相反方式傳播(從IsChecked屬性到IsFavorite);通常通過將綁定設置爲Mode=TwoWay來完成。

<ItemsControl ItemsSource="{Binding Categories, Mode=TwoWay}"> 
    <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <CheckBox IsChecked="{Binding Value.IsFavorite, Mode=TwoWay}" 
          Content="{Binding Key}" /> 
      </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

P.S.我假設你的意思是「當我 選擇 檢查複選框,但是,我希望我的字典更新。 「

+0

哦,男人,我不能相信我錯過了Mode = TwoWay的實際複選框與ItemsControl ...我會研究這一點。 – earthling

+0

我沒有注意到它在'ItemsSource'上。是的,這可能是沒用的。 – Douglas

+1

就是這樣。也許是另一個紅牛的時間:) – earthling