Рассмотрим следующий ViewModel:Bind DataGridColumnHeader со свойством выбранной строки в
public class MyViewModel
{
public ObservableCollection<Foo> foos { get; set; }
}
[PropertyChanged.ImplementPropertyChanged]
public class Foo
{
public string Name { get; set; }
public string NameHeader { get; set; }
}
Обратите внимание, что я использую Fody's PropertyChanged чтобы мои свойства ViewModel реализации INotifyPropertyChanged
.
И у меня есть следующие DataGrid
:
<DataGrid x:Name="FooTable"
ItemsSource="{Binding Path=foos}"
AutoGenerateColumns="False"
CanUserAddRows="True"
AutomationProperties.IsColumnHeader="True"
SelectionMode="Single"
SelectionUnit="FullRow">
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Header="{Binding NameHeader, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Width="Auto" />
</DataGrid.Columns>
</DataGrid>
Связывание Header
с NameHeader
не будет работать! Конечно, тогда я понял, что разные строки будут иметь разные значения NameHeader
.
Так что я действительно хочу, чтобы связать колонки Header
с выбранным Роу NameHeader
. Как я могу это достичь?
Почему я не думал об этом .. спасибо! –