Devexpress Winform 使用MVVM

MVVM在WPF里很早就有了,在Winform里Devexpress最近几个大版本才有的事,上一段代码。

现在对话框上添加三个控件simpleButton1,simpleButton2,textEdit1,MvvmContext组件

public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        // 
        // POCO View Model provides out-of-the-box support of the INotifyPropertyChanged.
        // 
        public class ViewModel
        {
            // Bindable property will be created from this property.
            public virtual string Title { get; set; }
            // Just a method for readability
            public string GetTitleAsHumanReadableString()
            {
                if (Title == null)
                    return "(Null)";
                if (Title.Length == 0)
                    return "(Empty)";
                if (string.IsNullOrWhiteSpace(Title))
                    return "(WhiteSpace)";
                return Title;
            }
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {

            // Set type of POCO-ViewModel
            mvvmContext1.ViewModelType = typeof(ViewModel);
            // Data binding for the Title property (via MVVMContext API)
            mvvmContext1.SetBinding(textEdit1, c=>c.EditValue, "Title");
            // UI binding for the Report command
            ViewModel viewModel = mvvmContext1.GetViewModel<ViewModel>();
            simpleButton2.Click += (s, ee) => XtraMessageBox.Show(viewModel.GetTitleAsHumanReadableString());
            

        }

  当simpleButton1点击执行后,simpleButton2点击后显示的就是textEdit1的值。

posted @ 2016-10-19 17:57  zhaogaojian  阅读(7381)  评论(0编辑  收藏  举报