我有一些像这样的 XAML (silverlight 3.0),
<data:DataGrid Margin="0,20,0,0" ItemsSource="{Binding Path=Upgrades}" =
AutoGenerateColumns="False" VerticalAlignment="Center"
AlternatingRowBackground="AliceBlue" HorizontalAlignment="Left"
SelectionMode="Single">
<data:DataGrid.RowStyle>
<Style TargetType="data:DataGridRow">
<Setter Property="IsSelected" Value="{Binding Path=IsSelected}"/>
</Style>
</data:DataGrid.RowStyle>
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Product Version" Binding="{Binding Path=ProductVersion}"/>
<data:DataGridTextColumn Header="Upgrade Version" Binding="{Binding Path=UpgradeVersion}"/>
<data:DataGridTextColumn Header="Description" Binding="{Binding Path=UpgradeDescription}" Width="350"/>
<data:DataGridTextColumn Header="Database Lock Required" Binding="{Binding Path=DatabaseLockRequired}"></data:DataGridTextColumn>
</data:DataGrid.Columns>
</data:DataGrid>
所以基本上我有一个升级 View 模型类的可观察列表,它是您可以在那里看到的名为“升级”的属性。每个升级 View 模型类都有绑定(bind)到的属性(例如 ProductVersion 等)。
我还添加了一个名为 IsSelected 的属性。我想绑定(bind)该属性,以便当您在 GridView 中选择一个项目时,它会自动设置。 DataGridRow 类上似乎没有名为 IsSelected 的属性。
我认为上面的示例在使用 ListView 时可以在 WPF 中运行。
最佳答案
尝试将此列添加到数据网格
<data:DataGridCheckBoxColumn Header="IsSelected" Binding="{Binding Path=IsSelected, Mode=TwoWay}"></data:DataGridCheckBoxColumn>
然后将名为 IsSelected 的属性添加到您的 View 模型
private bool _IsSelected = true;
public bool IsSelected
{
get
{
return _IsSelected;
}
set
{
if (value != _IsSelected)
{
_IsSelected = value;
OnPropertyChanged("IsSelected");
}
}
现在当您在数据网格中选择一个复选框时,它将在您的 ViewModel 中被选中
关于c# - Silverlight DataGrid 中的选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1752853/