Я не очень хорошо владею английским языком, потому что я не носитель языка. Прошу прощения, если я допустил ошибки на языке :)Связывание WPF DataGrid с DataTable
Я новичок в C# и WPF, и я пытаюсь связать DataGrid WPF с DataTable в TwoWay. Теперь, когда я редактирую значения в DataGrid, данные в DataTable изменяются правильно. Когда я пытаюсь заполнить DataTable с помощью следующего кода:
OleDbDataAdapter adapter = new OleDbDataAdapter("a query", (a connection));
adapter.Fill(dataTable);
код работает, и DataGrid кажется все в порядке. Но когда я попробую:
dataTable.Rows[0][1] = (some object);
Значение дисплея не изменяется. Я пытаюсь проверить значения в DataGrid следующим образом:
MessageBox.Show((SomeDataGrid.Items[0] as DataRowView).Row[1].ToString());
, и это не проблема. Мне интересно, почему значения отображения выглядят так.
Вот мой DataGrid.CellStyle в XAML:
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{TemplateBinding Background}">
<DataGridDetailsPresenter HorizontalAlignment="Stretch" VerticalAlignment="Center" Content="{TemplateBinding Content}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<!-- triggers -->
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
Я застрял на эту проблему в течение нескольких дней. Спасибо за любую помощь!
При определении столбца для DataGrid, Убедитесь, что вы устанавливаете свойство UpdateMode в PropertyChanged – Sivakumar