如何从ViewModel中访问RichEditBox控件?

时间:2016-03-22 05:37:26

标签: c# wpf xaml mvvm

所以我只想弄清楚如何从我的应用程序的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。这是访问它的适当方式还是反模式?有没有更好的方法来访问它?

1 个答案:

答案 0 :(得分:0)

开箱即用的RichEditBox并不是用于数据绑定:(但是你不应该将视图中的控件暴露给视图模型,因为这违背了MVVM所代表的一切。

有一些创建Bindable RichEditBoxes的人的解决方案。你可以尝试一下: http://www.codeproject.com/Articles/66054/A-Bindable-WPF-RichTextBox(我自己没有试过这个例子)