У меня есть DataGrid
, который содержит несколько объектов.В этой DataGrid у меня есть RowDetailsTemplate
для размещения всех иерархических данных.Я хочу иметь возможность выбрать объект внутри этой DataGrid, но пока мне не повезло со следующим кодом
<DataGrid x:Name="leagueList" Grid.Row="1" ItemsSource="{Binding Leagues}" SelectedItem="{Binding SelectedLeague}"
Margin="0,0,5,0" ColumnWidth="1*"
CanUserAddRows="False" AutoGenerateColumns="False" IsReadOnly="True" CanUserReorderColumns="False" CanUserSortColumns="False">
<DataGrid.Resources>
<utility:SubtractValueConverter x:Key="SubtractValueConverter"/>
</DataGrid.Resources>
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Expander Expanded="Expander_Expanded" Collapsed="Expander_Collapsed"/>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.Columns>
<DataGridTextColumn Header="League" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Initials" Binding="{Binding Initials}"/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate DataType="{x:Type models:Team}">
<DataGrid ItemsSource="{Binding Teams}" SelectedItem="{Binding Path=SelectedTeam, UpdateSourceTrigger=PropertyChanged}"
CanUserAddRows="False" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="All"
Width="{Binding ActualWidth,ElementName=leagueList, Converter={StaticResource SubtractValueConverter}, ConverterParameter=50}" HorizontalAlignment="Stretch" ColumnWidth="*" Margin="1,1,1,1" BorderThickness="2">
<DataGrid.Columns>
<DataGridTextColumn Header="Nickname" Binding="{Binding Nickname}"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
Свойство SelectedTeam
- это то, что я хочу вызывать, когдаTeam
выбрано, но оно, похоже, не привязано к этому свойству, хотя я указываю его как таковое.
public Team SelectedTeam
{
get => _SelectedTeam;
set
{
_SelectedTeam = value;
System.Windows.MessageBox.Show("Selected Team is: " + _SelectedTeam.Nickname);
RaisePropertyChangedEvent("SelectedTeam");
}
}
Когда я запускаю свое приложение, я даже не получаюMessageBox
всплывающее окно, когда я выбираю команду, но я должен.
Вся сетка заполнена правильно, я просто не могу получить SelectedItem из внутренней DataGrid.