所以我只想弄清楚如何从我的应用程序的View Model中访问RichEditBox控件。如果不使用反模式,这是否可行?
我知道在View模型中访问控件的唯一方法是将其传递给View Model实例中的属性。例如:
public MainView()
{
this.InitializeComponent();
// Instantiate the ViewModel:
MyViewModel vm = new MainViewModel();
{
myRichEditBox = this.richEditBoxElement;
}
}
所以现在MainViewModel实例(vm)包含一个名为myRichEditBox的字段,该字段指向我试图在View Model中操作的RichEditBox。这是访问它的适当方式还是反模式?有没有更好的方法来访问它?
答案 0 :(得分:0)
开箱即用的RichEditBox并不是用于数据绑定:(但是你不应该将视图中的控件暴露给视图模型,因为这违背了MVVM所代表的一切。
有一些创建Bindable RichEditBoxes的人的解决方案。你可以尝试一下: http://www.codeproject.com/Articles/66054/A-Bindable-WPF-RichTextBox(我自己没有试过这个例子)