テンプレートファイルに次のような単純なリストボックスがあります。
<local:ProcessVisualization x:Key="ProcessVisualization"/>
<ListBox Grid.Column="1"
Grid.Row="1"
ItemsSource="{Binding Source={StaticResource ResourceKey=ProcessVisualization}, Path=Instance.TestListItems}"
SelectedItem="{Binding Source={StaticResource ResourceKey=ProcessVisualization}, Path=Instance.SelectedTestListItem, Mode=TwoWay}">
</ListBox>
次に、ProcessVisualizationクラスに次のものがあります。
private ObservableCollection<string> _testListItems;
private string _selectedTestListItem;
private static readonly ProcessVisualization _processVisualization = new ProcessVisualization();
public ObservableCollection<string> TestListItems
{
get { return _testListItems; }
set
{
_testListItems = value;
NotifyPropertyChanged("TestListItems");
}
}
public string SelectedTestListItem
{
get { return _selectedTestListItem; }
set
{
_selectedTestListItem = value;
NotifyPropertyChanged("SelectedTestListItem");
}
}
public static ProcessVisualization Instance
{
get { return _processVisualization; }
}
文字列のリストをTestListItemsに割り当てるメソッドを実行すると、それらはリストボックスに正しく表示され、コードからSelectedTestListItemを問題なく設定できます。しかし、ユーザーがリストボックスから選択しようとしても、ProcessVisualizationクラスのプロパティの更新に戻らないようです。誰かが私が間違ったことを知っていますか?