Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Infragistics XamDataGrid WPF MVVM选择已更改_Wpf_Mvvm_Infragistics_Selectionchanged_Xamdatagrid - Fatal编程技术网

Infragistics XamDataGrid WPF MVVM选择已更改

Infragistics XamDataGrid WPF MVVM选择已更改,wpf,mvvm,infragistics,selectionchanged,xamdatagrid,Wpf,Mvvm,Infragistics,Selectionchanged,Xamdatagrid,我们正在WPF应用程序中实现MVVM体系结构。我们希望使用Infragistics XamDataGrid,但对于在视图模型层上实现selection changed事件有点不知所措 任何帮助都将不胜感激 我们迫切需要一个解决方案 安斯曼脉轮 Humana Inc.我从未使用过您所询问的数据网格,但您可以打赌它的工作原理与其他任何东西一样 在要将视图绑定到的ViewModel中,将有一个名为SelectedItem的属性或类似的属性 public object SelectedItem {

我们正在WPF应用程序中实现MVVM体系结构。我们希望使用Infragistics XamDataGrid,但对于在视图模型层上实现selection changed事件有点不知所措

任何帮助都将不胜感激

我们迫切需要一个解决方案

安斯曼脉轮
Humana Inc.

我从未使用过您所询问的数据网格,但您可以打赌它的工作原理与其他任何东西一样

在要将视图绑定到的ViewModel中,将有一个名为SelectedItem的属性或类似的属性

public object SelectedItem
{
    get { return (object)GetValue(SelectedItemProperty); }
    set { SetValue(SelectedItemProperty, value); }
}

// Using a DependencyProperty as the backing store for SelectedItem.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty SelectedItemProperty =
    DependencyProperty.Register("SelectedItem", typeof(object), typeof(ownerclass), new UIPropertyMetadata(0));
在xaml中,您可能可以将grids Selected属性绑定到该依赖项属性

<XamDataGrid ItemsSource={Binding Items} SelectedItem={Binding SelectedItem, UpdateSourceTrigger=PropertyChanged} />

我从未使用过您所询问的数据网格,但您可以打赌,它的工作原理与其他任何东西相同

在要将视图绑定到的ViewModel中,将有一个名为SelectedItem的属性或类似的属性

public object SelectedItem
{
    get { return (object)GetValue(SelectedItemProperty); }
    set { SetValue(SelectedItemProperty, value); }
}

// Using a DependencyProperty as the backing store for SelectedItem.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty SelectedItemProperty =
    DependencyProperty.Register("SelectedItem", typeof(object), typeof(ownerclass), new UIPropertyMetadata(0));
在xaml中,您可能可以将grids Selected属性绑定到该依赖项属性

<XamDataGrid ItemsSource={Binding Items} SelectedItem={Binding SelectedItem, UpdateSourceTrigger=PropertyChanged} />

这里是xamdatagrid的一些其他事件

SelectedItemsChanged
SelectedItemsChanging

RecordActivating
RecordActivated

这些可能会对您有所帮助。

这里是xamdatagrid的一些其他事件

SelectedItemsChanged
SelectedItemsChanging

RecordActivating
RecordActivated

这些可能会对您有所帮助。

我已经解决了上述问题。我用了一种非常简单的方法

  • 将XamGrid的ActiveCell属性绑定到VM中的对象类型属性
  • 在属性的setter中,调用方法并传递对象
  • 在方法内部,将对象强制转换为infragics.Windows.Cell类型变量
  • 使用Infragistics.Windows.Cell对象的Record.Index查找所选索引
  • 使用该索引,查找从xamdatagrid绑定到的原始集合/数据源中选择的行

  • 简单,但有效

    我已经解决了上述问题。我用了一种非常简单的方法

  • 将XamGrid的ActiveCell属性绑定到VM中的对象类型属性
  • 在属性的setter中,调用方法并传递对象
  • 在方法内部,将对象强制转换为infragics.Windows.Cell类型变量
  • 使用Infragistics.Windows.Cell对象的Record.Index查找所选索引
  • 使用该索引,查找从xamdatagrid绑定到的原始集合/数据源中选择的行

  • 简单,但有效

    如果您希望能够使用MVVM绑定所选项目,那么我建议您使用一种行为来实现这一点。Devin Rader编写了一个包含在视图模型和选择UI之间同步值的应用程序,您可以使用类似的工具来了解视图模型中的选择何时发生了更改


    如果您对此有任何疑问,请告诉我。

    如果您希望能够使用MVVM绑定所选项目,那么我建议您使用行为来完成此操作。Devin Rader编写了一个包含在视图模型和选择UI之间同步值的应用程序,您可以使用类似的工具来了解视图模型中的选择何时发生了更改


    如果您对此有任何疑问,请告诉我。

    对于Infrastic v11.2,XamlDataGrid具有名为ActiveDataItem的属性,该属性表示绑定到该行的当前dataitem

    您可以做的是在ViewModel中创建属性,并将其绑定到XamlDataGrid的ActiveDataItem,如下所示,并观察更改

    <igDataPresenter:XamDataGrid ActiveDataItem="{Binding ActiveItem, Mode=TwoWay}" >
    
    
    
    我的场景: 我想对绑定到单个网格行的dataItem发出命令,双击单个行,下面是xaml代码

            <igDataPresenter:XamDataGrid x:Name="DemoGrid" 
                        DataSource="{Binding Path=Items, Mode=OneWay}"
            >
          <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
              <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource AncestorType=igDataPresenter:XamDataGrid}, Path=ActiveDataItem.ViewCommand}"></i:InvokeCommandAction>
    
            </i:EventTrigger>
          </i:Interaction.Triggers>
    

    对于Infrastic v11.2,XamlDataGrid具有名为ActiveDataItem的属性,该属性表示绑定到行的当前数据项

    您可以做的是在ViewModel中创建属性,并将其绑定到XamlDataGrid的ActiveDataItem,如下所示,并观察更改

    <igDataPresenter:XamDataGrid ActiveDataItem="{Binding ActiveItem, Mode=TwoWay}" >
    
    
    
    我的场景: 我想对绑定到单个网格行的dataItem发出命令,双击单个行,下面是xaml代码

            <igDataPresenter:XamDataGrid x:Name="DemoGrid" 
                        DataSource="{Binding Path=Items, Mode=OneWay}"
            >
          <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
              <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource AncestorType=igDataPresenter:XamDataGrid}, Path=ActiveDataItem.ViewCommand}"></i:InvokeCommandAction>
    
            </i:EventTrigger>
          </i:Interaction.Triggers>
    
    
    
    你好,安迪,谢谢你的回复。但这看起来更像是绑定SelectedItem属性。我已经实现了。我需要为SelectionChange执行命令(事件处理委派)。此XAMDataGridHi Andy中不起作用,当我尝试创建DependencyProperty并在XAMDataGrid中使用它时,出现以下错误:错误1 XML命名空间“”中不存在属性“SelectedItem”。第94行Position 27.xamDataGrid不包含SelectedItem属性Hi Andy,感谢您的回复。但这看起来更像是绑定SelectedItem属性。我已经实现了。我需要为SelectionChange执行命令(事件处理委派)。此XAMDataGridHi Andy中不起作用,当我尝试创建DependencyProperty并在XAMDataGrid中使用它时,出现以下错误:错误1 XML命名空间“”中不存在属性“SelectedItem”。第94行位置27.xamDataGrid不包含回复Jodha的SelectedItem PropertyTanks。但是,对于xaml文件的代码隐藏,这些事件可以很好地工作。我想在视图模型层实现事件处理程序。任何人都有这种行为的例子吗?看看这个谢谢你的回复。但是,对于xaml文件的代码隐藏,这些事件可以很好地工作。我想在视图模型层实现事件处理程序。任何一个有附加行为的例子吗?看一看这是可行的,但是现在你的ViewModel被耦合到视图,而不是反过来。如果您想将控件库更改为另一个第三方库,甚至您自己的自定义控件,则必须更改