GridView 5列: - 文字 - 单选按钮 - 单选按钮 - 单选按钮 - 复选框
文本列通过绑定到List<>自动填充。 关于我需要的无线电按钮它们是按行而不是按列相互排斥;它们的值由用户交互设置。
如果我像下面的例子中那样设置GroupName属性,则所有单选按钮都按行和按列互斥。
你能告诉我吗?提前谢谢!克里斯
<ListView Grid.Row="0" Grid.Column="0" HorizontalAlignment="Stretch" Margin="0,0,0,0" Name="lstWords" VerticalAlignment="Stretch">
<ListView.View>
<GridView>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Word" DisplayMemberBinding="{Binding Word}"/>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Frequency" Width="60" DisplayMemberBinding="{Binding Frequency}" />
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Ins" Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<RadioButton Name="radioToInsert" GroupName="radioWords" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Rep" Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<RadioButton Name="radioToReplace" GroupName="radioWords" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Del" Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<RadioButton Name="radioToDelete" GroupName="radioWords" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Inf" Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="chkToInflect"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
答案 0 :(得分:0)
如果您可以修改ListView
绑定到的列表中的对象,则可以在该对象中添加唯一标识该特定对象的属性,仅用于此目的。例如:
public class DataObject
{
public void DataObject()
{
Id = Guid.NewGuid();
}
public Guid Id{ get; private set; }
}
然后,您可以将GroupName
绑定到此媒体资源:
<RadioButton Name="radioToInsert" GroupName="{Binding Id, Mode=OneWay}" />
因为每行代表列表中的不同对象,所以此Id
仅在1行范围内共享。