Considérons le ViewModel suivant:Bind DataGridColumnHeader avec la propriété de ligne sélectionnée
public class MyViewModel
{
public ObservableCollection<Foo> foos { get; set; }
}
[PropertyChanged.ImplementPropertyChanged]
public class Foo
{
public string Name { get; set; }
public string NameHeader { get; set; }
}
Notez que j'utilise Fody's PropertyChanged pour faire mes propriétés ViewModel mettre en œuvre INotifyPropertyChanged
.
Et je donne les résultats suivants 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>
La liaison de Header
avec NameHeader
ne fonctionnera pas! Bien sûr, j'ai réalisé que différentes lignes auront des valeurs différentes de NameHeader
.
Donc ce que je veux vraiment est de Header
de colonne de liaison avec de NameHeader
ligne sélectionnée. Comment puis-je y parvenir?
Pourquoi n'a pas pensé à ça .. merci! –