那是我的数据网格:
SelectHouse.xaml.cs
<DataGrid x:Name="HousesDataGrid"
ItemsSource="{Binding AvailableHouses}"
AutoGenerateColumns="False"
CanUserAddRows="False"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Select:" Width="60" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<RadioButton
GroupName="GroupHouses" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="House" Width="Auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=OneWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
SelectHouseViewModel:
public List<Houses> AvailableHouses
{
get { return _availableHouses; }
}
我有两个问题/问题:
答案 0 :(得分:2)
1)要获取DataGrid的选定行,只需将它的SelectedItem属性绑定到ViewModel a-la SelectedItem = {Binding SelectedHouse}中的可设置House,其中SelectedHouse是VM中的属性。 / p>
2)为什么你甚至需要一个单选按钮 - 是否只是在视觉上重新强制选择行?如果是这种情况,那么您需要将一个IsSelected属性添加到您的家用VM,并将单选按钮的IsSelected属性绑定到它。您还需要挂钩DataGrid的SelectionChanged事件以保持所有状态一致。