我有2个扩展工具包Datagrids
中绑定到2个名为帐户和历史观察集合的窗口。 我想历史的单元格编辑结束事件绑定DataGrid
的命令在我的视图模型,这样我可以,除其他事项外,更新帐户可观察到的集合中的值,并把它反映在视图。
为了测试一切可以工作,我用下面的事件:
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding MyCmd}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
这在视图模型成功地引发了命令,由观察集合在一个静态的变化和更新视图。 所以,一切都很好。
如果我改变了EventName
被CellEditEnded
或到目前为止一切可能的变化我能想到的; 什么都没发生。
所以,我应该用什么事件名称来捕获端扩展工具包的WPF的事件的单元格编辑DataGrid
? 任何帮助将是巨大的,我不知道在哪里,从这里走。
编辑:
我发现这个职位使用一个单独的类,以提高该建议CellEditEnded
事件。 但我想不通,我应该如何提高自定义事件。 任何一个可以解释这个应该怎么使用呢? 使用CellEditEnded
在EventTrigger事件按后仍然无法正常工作。
public class MyDataGridControl : DataGridControl
{
public MyDataGridControl()
{
this.AddHandler( Cell.EditEndedEvent, new RoutedEventHandler( MyDataGridControl.OnCellEditEnded ) );
}
public event RoutedEventHandler CellEditEnded;
private void RaiseCellEditEnded( RoutedEventArgs e )
{
var handler = this.CellEditEnded;
if( handler == null )
return;
handler.Invoke( this, e );
}
private static void OnCellEditEnded( object sender, RoutedEventArgs e )
{
var dataGrid = ( MyDataGridControl )sender;
Debug.Assert( dataGrid != null );
dataGrid.RaiseCellEditEnded( e );
}
}
编辑2:
现在我发现这个网站它看起来很有希望。 我适应代码到下面和上面的类不执行,但CellEditEnded
事件仍然不火。
private void HistoryDataGrid_EditEnded(object sender, RoutedEventArgs e)
{
MyDataGridControl mydatagridcontrol = new MyDataGridControl();
mydatagridcontrol.CellEditEnded += new RoutedEventHandler(mydatagridcontrol_CellEditEnded);
mydatagridcontrol.RaiseEvent(e);
}
void mydatagridcontrol_CellEditEnded(object sender, RoutedEventArgs e)
{
}
我觉得好像应该有东西在void mydatagridcontrol_CellEditEnded
一部分,但我不知道我会放在那里。
任何帮助将真正理解。
谢谢!