Я пытаюсь привязать столбцы и строки DataGrid
к тому же источнику, но DataGrid не показывает новое значение в ColumnHeader
, когда я изменяю значение в RowHeader
после TextBox
потери фокуса. Коллекция заголовков содержит новые значения, как и ожидалось.
xmlns:dataGrid2D="http://gu.se/DataGrid2D"
<Grid>
<DataGrid
dataGrid2D:ItemsSource.RowHeadersSource="{Binding Headers}"
dataGrid2D:ItemsSource.ColumnHeadersSource="{Binding Headers}"
dataGrid2D:ItemsSource.Array2D="{Binding Items}"
IsReadOnly="True"
AutoGenerateColumns="True">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<TextBox Text="{Binding Value}" />
</DataTemplate>
</DataGrid.RowHeaderTemplate>
</DataGrid>
</Grid>
DataContext:
public class MainViewModel
{
public IEnumerable<Header> Headers { get; } = new Header[]
{ new Header { Value = "1" }, new Header { Value = "2" } };
public string[,] Items { get; } = new string[2, 2] { { "1", "2" }, { "3", "4" } };
}
public class Header
{
public string Value { get; set; }
public override string ToString()
{
return Value;
}
}
Что я делаю не так?
Я изменяю свойство Value со стороны просмотра, поэтому для него не требуется интерфейс INotifyPropertyChanged. Если я вызываю «Обновить» в DataGrid, он обновляется, но мигает.
Edit:
Почему вы отрицаете меня? Это плохой вопрос?