C# 如何在datagrid中获取选定的radiobutton并通过单击行选择radiobutton

C# 如何在datagrid中获取选定的radiobutton并通过单击行选择radiobutton,c#,.net,wpf,datagrid,radio-button,C#,.net,Wpf,Datagrid,Radio Button,这是我的数据网格: 选择house.xaml.cs <DataGrid x:Name="HousesDataGrid" ItemsSource="{Binding AvailableHouses}" AutoGenerateColumns="False" CanUserAddRows="False" IsReadOnly="True">

这是我的数据网格:

选择house.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>

选择房屋视图模型:

public List<Houses> AvailableHouses
{
    get { return _availableHouses; }
}
公共可用房屋列表
{
获取{return\u availablehouse;}
}
我有两个问题:

  • 如何在viewmodel中获取所选房屋
  • 如果我想选择第2行,我必须选中单选按钮。如果我点击第二行的任何列,是否可以选择radiobutton?例如,如果我点击第二行的house列,则应选择第二行的radiobutton
  • 1) 要获取DataGrid的选定行,只需将其SelectedItem属性绑定到ViewModel a-la SelectedItem={Binding SelectedHouse}中的可设置房屋,其中SelectedHouse是VM中的属性

    2) 为什么您甚至需要一个单选按钮?它只是为了直观地重新执行行选择吗?如果是这种情况,那么您需要将IsSelected属性添加到您的房屋VM中,并将单选按钮的IsSelected属性绑定到它。您还需要钩住DataGrid的SelectionChanged事件,以保持所有状态的一致性