В моем главном окне у меня есть коллекция ObservableCollection, которая отображается в списке для каждой привязки.
Если я обновлю свою Коллекцию, модификация будет показана в списке.
Это работает:
public ObservableCollection<double> arr = new ObservableCollection<double>();
public MainWindow()
{
arr.Add(1.1);
arr.Add(2.2);
testlist.DataContext = arr;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
arr[0] += 1.0;
}
<ListBox Name="testlist" ItemsSource="{Binding}"></ListBox>
Эта версия не работает:
public ObservableCollection<double> arr = new ObservableCollection<double>();
public MainWindow()
{
arr.Add(1.1);
arr.Add(2.2);
testlist.DataContext = this;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
arr[0] += 1.0;
}
<ListBox Name="testlist" ItemsSource="{Binding Path=arr}"></ListBox>
Можете ли вы сказать мне, почему?
Я хотел бы указать this как DataContext, потому что в моем диалоге есть много других свойств, и было бы неплохо, если бы мне не пришлось устанавливать DataContext для каждого отдельного элемента управления.