我有一些这样的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>
所以基本上我有一个可观察的升级视图模型类列表,你可以在那里看到名为'Upgrades'的属性。每个升级视图模型类都具有绑定到的属性(例如ProductVersion等)。
我还添加了一个名为IsSelected的属性。我想绑定该属性,以便在网格视图中选择一个项目时,它会自动设置。在DataGridRow类上似乎没有名为IsSelected的属性。
我认为上面的示例在使用ListView时可以在WPF中使用。
答案 0 :(得分:2)
尝试将此列添加到datagrid
<data:DataGridCheckBoxColumn Header="IsSelected" Binding="{Binding Path=IsSelected, Mode=TwoWay}"></data:DataGridCheckBoxColumn>
然后将名为IsSelected的属性添加到viewmodel
private bool _IsSelected = true;
public bool IsSelected
{
get
{
return _IsSelected;
}
set
{
if (value != _IsSelected)
{
_IsSelected = value;
OnPropertyChanged("IsSelected");
}
}
现在,当您在数据网格中选中一个复选框时,它将在您的ViewModel
中被选中答案 1 :(得分:0)
尝试绑定到Grid上的SelectedItem属性,这是一个
示例:
<my:DataGrid Width="Auto"
SelectedItem="{Binding Path=AcronymsDefinitions_SelectedItem}"
ItemsSource="{Binding Path=DataGridSource}"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
MaxColumnWidth="500"
Margin="0,0,0,0"
Background="#FFC8C8C8"
Foreground="#FF333333"
VerticalGridLinesBrush="AntiqueWhite"
HorizontalGridLinesBrush="AliceBlue" />