为什么我无法绑定datagrid属性所选项? 我的ViewModel中有属性
protected TheFile curentFile ;
public TheFile CurentFile
{
get { return curentFile; }
set { curentFile = value;
OnPropertyChanged("CurentFile"); }
}
这是我的datagrid:
<DataGrid IsReadOnly="True" AutoGenerateColumns="False" Grid.ColumnSpan="1" Grid.Row="1" Grid.Column="0" Grid.RowSpan="1" Name="dataGrid1" ItemsSource="{Binding SameFileGroups}" SelectedItem="{Binding CurentGroup}">
<DataGrid.Columns>
<DataGridTextColumn Header="Всього" Width="1*" Binding="{Binding TotalSizeInDirectory}"/>
<DataGridTextColumn Header="1 файл" Width="1*" Binding="{Binding OneFileSize}"/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Path=Files}" AutoGenerateColumns="False" SelectedItem="{Binding Path=CurentFile, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Columns>
<DataGridTextColumn Header="Шлях" Binding="{Binding Path=Destination}"/>
<DataGridTextColumn Header="Розмір" Binding="{Binding Path=SizeBytes}"/>
<DataGridTextColumn Header="md5" Binding="{Binding Path=Md5Hash}"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
但是这种绑定不起作用
<DataGrid ItemsSource="{Binding Path=Files}" AutoGenerateColumns="False" SelectedItem="{Binding Path=CurentFile, UpdateSourceTrigger=PropertyChanged}">
答案 0 :(得分:1)
此处DataContext
存在问题。
在RowDetailsTemplate
中,您尝试绑定到主视图模型中的属性,但DataContext
的{{1}}是行项目。
如果要绑定到主视图模型中的属性,则应使用RowDetailsTemplate
绑定。
试试这个:
RelativeSource