Silverlight中使用MVVM(2)—提高

Silverlight中使用MVVM(2)—提高,第1张

概述在 第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知识的,当然整个例子学完后,我们会回过头探讨一下,将其总结出来。 现在我们主要在前面的示例上进行扩展,前面的示例中我们主要是将一个源对象绑定到DataGrid中的,接下来我们继续使用MVVM模式,将D 第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知识的,当然整个例子学完后,我们会回过头探讨一下,将其总结出来。

现在我们主要在前面的示例上进行扩展,前面的示例中我们主要是将一个源对象绑定到DataGrID中的,接下来我们继续使用MVVM模式,将DataGrID选择行的变化体现界面中,其实通过这个需求变化,你会发现UI与逻辑分离带来的优势,尽管才开始似乎有点不习惯,但是相信你会不自觉的在项目倾向于中使用MVVM模式。

      需求:通过单击DataGrID,将当前的选择行的数据反映到TextBox中。

      Model未发生变化,我们还用前面的Person.cs和Persons.cs两个类,那么对于viewmodel,我们给其增加一个属性

        private Person _getonePerson;
        public Person GetonePerson
        {
            get { return _getonePerson; }
            set { _getonePerson = value;
            if (PropertyChanged != null)
            {
                PropertyChanged(this,new PropertyChangedEventArgs("GetonePerson"));
            }
        }

      因为这里的属性将发生变化,所以我们对Pageviewmodel类实现了INotifyPropertyChanged借口

      UI层: 这里我们将GetonePerson属性绑定到DataGrID的SelectedItem属性上

        <data:DataGrID autoGenerateColumns="True" ItemsSource="{Binding Human}" 
         SelectedItem="{Binding GetonePerson,Mode=TwoWay}"
        Height="200"  name="dataGrID1" VerticalAlignment="top" />
        <TextBox Text="{Binding GetonePerson.age,Mode=OneWay}" 
        name="textBox1" VerticalAlignment="top" WIDth="120" />
        <TextBox Text="{Binding GetonePerson.name,monospace; Font-size:11px">        name="textBox2" VerticalAlignment="top" WIDth="120" />

     我们在UI上增加了2个TextBox,用于反映页面上的变化,主要就是注意一下Binding的对象

      这些都完成后,其它部分就不用改动了,我们已经完成了这个功能,我们可以看看页面的效果:        

                                                                      

                                         

 

                                                         单击前后的变化             

    功能虽较为简单,但是刚接触MVVM时, 要很顺利的实现也不算是一件容易的事情,后面我会在这个例子的基础上,通过使用Command实现一个较简单的查询。

总结

以上是内存溢出为你收集整理的Silverlight中使用MVVM(2)—提高全部内容,希望文章能够帮你解决Silverlight中使用MVVM(2)—提高所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1016173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存