c# - Silverlight DataGrid 中的选定项

标签 c# silverlight-3.0 mvvm

我有一些像这样的 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/

相关文章:

C# 创建查找下一个函数

silverlight-3.0 - 开发人员可以使用 XNA 和 Silverlight 创建什么类型的游戏?

c# - 在哪里放置代码以在 View 中创建大量按钮?

c# - 处理网站和 cms 身份验证的用户身份

javascript - 动态添加的 Html 输入页面选项卡按钮不起作用

c# - Linq - 对列表的列表进行操作

silverlight - MVVM-RaisePropertyChanged将代码变成一团糟

silverlight - 如何将事件聚合添加到现有 Silverlight 应用程序?

model-view-controller - 如何从业务/模型类发送进度更新?

c# - 使用 linq 表达式将 IsEnabled 绑定(bind)到 linq 属性