У меня есть приложение WPF со списком и контентом управления. Контент управления контентом привязан к списку и имеет табличку с данными, которая отображает текстовое поле, содержимое которого привязано к переменной выбранного элемента в указанном списке. Пока что все работает хорошо, то есть когда я выбираю элемент из списка, содержимое текстового поля изменяется на текущее значение переменной. Однако, если во время выполнения я изменяю значение переменной, текстовое поле не обновляется, пока я не выберу другой элемент списка и затем снова не выберу исходный элемент. Любые идеи о том, что я делаю неправильно или чего мне здесь не хватает? Я думал, что значение текстового поля будет меняться автоматически? Ваша помощь очень ценится.
Вот пример (MainWindow.xaml)
<Grid>
<ListBox Height="100" HorizontalAlignment="Left" Margin="12,105,0,0" x:Name="listBox1" VerticalAlignment="Top" Width="120" />
<ContentControl Height="120" HorizontalAlignment="Left" Margin="191,105,0,0" Name="contentControl1" VerticalAlignment="Top" Width="300" ContentTemplate="{DynamicResource MyDataTemplate}" Content="{Binding SelectedItem,ElementName=listBox1}"/>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="202,56,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
Код C #:
public MainWindow()
{
InitializeComponent();
listBox1.Items.Add(new MyItem(32));
listBox1.Items.Add(new MyItem(45));
listBox1.Items.Add(new MyItem(5));
}
private void button1_Click(object sender, RoutedEventArgs e)
{
((MyItem)listBox1.SelectedItem).Value = 4564654;
}
Дополнительный класс:
public class MyItem
{
public MyItem(Int32 Value)
{
this.Value = Value;
}
public Int32 Value { get; set; }
}
И шаблон:
Я уверен, что мне не хватает чего-то вроде уведомления пользовательского интерфейса об изменениях в источнике или вызова обновления каким-либо образом. Это гораздо более упрощенная версия моей реальной проблемы, которая включает элементы управления, метки и т. Д., Которые должны обновляться при изменении источника. Приветствия:)