Я реализовал DataGrid следующим образом:
<DataGrid
x:Name="MyDataGridFilter"
ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn
x:Name="FilterTextCol01">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox
Grid.Column="0"
IsHitTestVisible="True"
Text="{Binding Path=FilterTextCol01}" />
<CheckBox
Grid.Column="1"
x:Name="FilterAktivTextCol01"
IsHitTestVisible="True"
IsChecked="{Binding Path=FilterAktivTextCol01}"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Привязка в коде идет следующим образом:
FilterItemsList = new ObservableCollection<DataGridFilterEntity>();
MyDataGridFilter.DataContext = FilterItemsList;
(оно замкнуто)
FilterItemsList реализован как класс INotifyPropertyChanged:
public class DataGridFilterEntity : INotifyPropertyChanged
С членом FilterTextCol01 (конечно):
public string FilterTextCol01
{
get { return _FilterTextCol01; }
set
{
_FilterTextCol01 = value;
Changed("FilterTextCol01");
}
}
Все отлично работает. Когда я изменяю FilterItemsList, DataGrid повторно отображает эти изменения.
Но когда я делаю некоторые изменения в пользовательском интерфейсе (в DataGrid), это не отражается в ObservableCollection (FilterItemsList).
Я искал и пробовал несколько часов, но не нашел решения.
Кто-нибудь знает как это решить?
Спасибо!