首页 新闻 赞助 找找看

如何viewModel中引用view对象

1
悬赏园豆:20 [已解决问题] 解决于 2011-09-13 12:30

目标:想在viewModel中动态改变控件的一些属性。

要求:在某一个控件的一个特定事件触发后,改变另一个控件的一些属性。

想法:创建一个RelayCommand类,实现ICommand接口,大概代码如下:

            public class RelayCommand:ICommand

           {

                      Action _handler;

                      public RelayCommand(Action handler)

                         {

                                  _handler=handler;

                          }

                         ...........

               }

          同时在viewmodel中暴露一个ICommand属性,如下:

           ICommand _certainHandler;

           public ICommand CertainHandler

          {

                      get{ return    _certainHandler=new RelayCommand(处理方法签名);}

           }

          在xaml中的控件上通过<i:Interaction:Trigger>

                                               <i:EventTrigger EventName='.....'>

                                                  <i:InvokeCommandAction Command={"Binding ..."}/>

                                              </i:EventTrigger>

                                         </i:Interaction:Trigger>

问题:如何在方法签名中获得view中的控件?还用RelayCommand<T>一般是用在什么情况,如何使用?

华-子的主页 华-子 | 初学一级 | 园豆:156
提问于:2011-06-29 17:17
< >
分享
最佳答案
0

我感觉的你的思路有点不对头,你不应该试图在viewmode中使用view中的控件,而应该用view控件绑定到viewmodel的属性上,然后在你的方法里直接更新这个属性,然后通过wpfbinding知识,去更新view。

收获园豆:20
umlchina | 菜鸟二级 |园豆:225 | 2011-07-14 12:02
关键是绑定属性,不能满足我的需求。因为telerik中的Gridview控件的ComboBoxColumn列只有在代码中手动绑定才能显示出它的官方实例中的效果。所以我才想在viewmodle中得到这个控件。
华-子 | 园豆:156 (初学一级) | 2011-07-16 10:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册