2009-09-10 2 views
5

は、XAMLファイルの関連する部分です動作させることはできません:は、リストボックスとUpdateTargetはここ

xmlns:local="clr-namespace:BindingTest" 
<ListBox x:Name="myList" 
     ItemsSource="{Binding Source={x:Static local:MyClass.Dic}, 
           Path=Keys, 
           Mode=OneWay, 
           UpdateSourceTrigger=Explicit}"> 
</ListBox> 

MyClassのパブリック静的クラスであり、DICが静的パブリックプロパティ、辞書です。

ある時点で、アイテムを辞書に追加し、ListBoxに変更を反映させたいと思います。
これは私が使用して考えたが、それは動作しないコードです:

BindingExpression binding; 
binding = myList.GetBindingExpression(ListBox.ItemsSourceProperty); 
binding.UpdateTarget(); 

このコードの代わりに動作します:私はUpdateTargetはを使用することを好むだろう

myList.ItemsSource = null; 
myList.ItemsSource = MyClass.dic.Keys; 

が、私はそれを得ることができません働く
何が間違っていますか?

答えて

11

アイテムのバインドは、WPFでDependencyPropertyの標準バインド(具体的には、ItemsControlによって)とは異なります。

私はあなたが以下のような何かをしたいと思う:

var itemsView = CollectionViewSource.GetDefaultView(myListBox.ItemsSource); 
itemsView.Refresh() 

それは実際にあなたがリフレッシュしたいICollectionViewオブジェクトです。これは事実上、コレクションバインディングを管理するオブジェクトです。詳細はthe MSDN pageを参照してください。

+0

ありがとう、それは完全に働いた。 – RobSullivan

関連する問題