快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

WPF中MVVM如何绑定DataGrid并动态修改单元格-创新互联

1.什么是MVVM?

成都创新互联公司从2013年开始,先为邯山等服务建站,邯山等地企业,进行企业商务咨询服务。为邯山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

MVVM是Model、View、ViewModel的简写,这种模式的引入就是使用ViewModel来降低View和Model的耦合,说是降低View和Model的耦合。也可以说是是降低界面和逻辑的耦合,理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。

WPF 中 MVVM 如何绑定DataGrid 并动态修改单元格

2.项目目录

从上面的图我们可以看出,处理事务的文件有几个类型:View,ViewModel,Command,Property,Model,这个几个类型的图片

WPF 中 MVVM 如何绑定DataGrid 并动态修改单元格

最下面的ViewModelBase.cs就是Property,对应处理触发属性发现变化的事务。

3.代码分析:

a):入口 App.xaml

 private void Application_Startup(object sender, StartupEventArgs e)
        {
           //创建一个ViewModel;
            MainViewModel mode = new MainViewModel();
           //初始化ViewModel内容
            mode.ItemDatas = new ObservableCollection();
            mode.ItemDatas.Add(new ItemData { Title = "TST", Content = "sss" });
            mode.ItemDatas.Add(new ItemData { Title = "2TST", Content = "2sss" });    
           //初始化View;        
            MainWindow main = new MVVMGridDemo.MainWindow();
           //把ViewModel绑定到View上
            main.DataContext = mode;
           //显示窗口
            main.Show();
        }

b):MainWindow窗口ViewModel;

   view代码

    
        
            
                
                
            
        
        
        
    

viewmodel代码

 public class MainViewModel : ViewModelBase    {
        private ObservableCollection _itemdatas;//view 中Name为Texxt的值在这里实现
        private string _texxt;
        public string TexxT        {
            get { return this._texxt; }
            set
            {
                this._texxt = value;
                OnPropertyChanged("TexxT");
            }
        }//view中itemsourse 为ItemData的数据绑定;
        public ObservableCollection ItemDatas        {
            get { return _itemdatas; }
            set
            {
                this._itemdatas = value;
                OnPropertyChanged("ItemDatas");
            }
        }//修改按钮点击事件在这里实现
        public ICommand ButtonClick        {
            get
            {

                return new ActionCommand(p => BClick(p));
            }
        }


        private void BClick(object obj)
        {

            DataGrid box = (DataGrid)obj;

            ItemDatas[0].Title = TexxT;//刷新dataGrid
            box.Items.Refresh();

        }

    }

全部源代码:https://github.com/servucn/MVVMGridDemo

交流地址:http://www.ucasp.net/wpfresources/mvvmgriddemo.shtml


另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:WPF中MVVM如何绑定DataGrid并动态修改单元格-创新互联
URL地址:http://6mz.cn/article/cdjesg.html

其他资讯