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的值。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM