从ViewModel设置焦点不适用于datagrid项目 [英] Setting focus from ViewModel does not work for the datagrid items
本文介绍了从ViewModel设置焦点不适用于datagrid项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在关注乔什·史密斯(Josh Smith)关于从ViewModel设置焦点的文章( http://joshsmithonwpf.wordpress.com/2010/03/16/control-input-focus-from-viewmodel-objects/) 并毫不费力地使用他的库,直到我将其用于datagrid项目为止.下面是无效代码的简化版本.
I was following Josh Smith's article on setting focus from the ViewModel (http://joshsmithonwpf.wordpress.com/2010/03/16/control-input-focus-from-viewmodel-objects/) and using his library without trouble until I used the same for datagrid items. A simplified version of the non working code is below.
PS:我也在我的项目中使用Caliburn Micro.
PS: I am using Caliburn Micro for my project as well.
public class MainViewModel
{
public class SubViewModel : IFocusMover, IDataErrorInfo
{
public string RequiredField { get; set; }
public event EventHandler<MoveFocusEventArgs> MoveFocus;
public void InvokeMoveFocus(string propertyToBeFocussed)
{
var handler = MoveFocus;
if (handler != null)
{
handler(this, new MoveFocusEventArgs(propertyToBeFocussed));
}
}
public string Error { get; set; }
public string this[string propertyName]
{
get
{
InvokeMoveFocus(propertyName);
return Error;
}
}
}
public ObservableCollection<SubViewModel > SubItems { get; set; }
}
推荐答案
该方法不适用于SubItem,您必须检查验证并动态设置TextBox.Focus().
This method can not work on SubItem, you have to check the validation and set TextBox.Focus() dynamicly.
这篇关于从ViewModel设置焦点不适用于datagrid项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文