【发布时间】:2014-07-31 10:45:42
【问题描述】:
我正在使用 mvvm light 学习 wpf,但我遇到了一个问题。 我有一个用户控件,其中包含一个加载了查询的数据网格。
现在我想在 selectedIndex 上添加一个事件来检索选定的行,然后我会将值传递给其他用户控件。
问题是我的事件从未被触发。
这就是我所做的
<DataGrid HorizontalAlignment="Left" Name="dgUser" VerticalAlignment="Top" SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}" SelectedItem="{Binding selectedRow, Mode=TwoWay}" Width="800" Height="253" >
这是我的视图模型的代码
public RelayCommand selectedRow { get; private set; }
private int _selectedIndex;
public int SelectedIndex
{
get { return _selectedIndex; }
set
{
_selectedIndex = value;
RaisePropertyChanged("SelectedIndex");
}
}
/// <summary>
/// Initializes a new instance of the ListUserViewModel class.
/// </summary>
public ListUserViewModel()
{
selectedRow = new RelayCommand(() => SelectedRowChange());
SelectedIndex = 2;
}
private void SelectedRowChange()
{
System.Windows.MessageBox.Show("test");
}
我的行没有被 SelectedXIndex = 2 选中 当我选择另一行时没有任何反应
【问题讨论】:
-
SelectedItem不是事件,而是属性。SelectionChanged是事件。尝试使用它。 -
selectionChanged 抛出异常,除非我使用 EventTrigger
标签: wpf binding datagrid mvvm-light selectedindex