【发布时间】:2014-06-07 21:25:24
【问题描述】:
我想获得对绑定到给定属性名称的TextBox 的引用。
我想在不改变视图的情况下做到这一点。
有没有使用 Caliburn Micro 的正确方法来做到这一点?
如果不是,什么是“足够好”的方式?
public class MweViewModel : PropertyChangedBase
{
public MweViewModel() : base()
{
PropertyChanged += (object sender, PropertyChangedEventArgs e) =>
{
// Find control (i.e. TextBox) bound to property with name e.PropertyName
TextBox textBox = ...
};
}
}
【问题讨论】:
-
你的最终目标是什么?您的
ViewModel似乎不应该在这种程度上知道您的View,您可能可以采取另一种方法。可能这确实是解决您的问题的唯一方法,但绝对值得探索您想要实现的目标。 -
我是 WPF 初学者,所以这很可能是错误的方法。这个想法是为继承视图模型中的属性标记属性提供自动验证,而无需调整视图。设置自动验证相对简单。我遇到的问题是准确控制它的行为方式。我的想法是访问映射到属性更改的视图事件(通过
TextBox)。 IE。如果有人在视图中执行此操作,请验证该字段。 -
啊,我明白了,大概您还需要定义这些错误将如何显示在您的视图中?这可能有一些有用的信息:blog.magnusmontin.net/2013/08/26/data-validation-in-wpf 再说一次,它可能不是 =D
-
@Chris 是的,如果您想自定义错误显示,您可以更改视图中的 Validation.ErrorTemplate。还有一个合理的红色边框默认值。
标签: c# wpf caliburn.micro