加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从XAML设置ViewModel的属性

发布时间:2020-12-16 01:43:36 所属栏目:百科 来源:网络整理
导读:我有一些UserControl,它的DataContext绑定到ViewModel, 如何从XAML设置ViewModel的属性?可能吗? UPD: 对不起,不太清楚, 我想要得到这样的东西: UserControl的DataContext绑定到ViewModel,我需要将ViewModel的属性设置为某些东西(比方说,UserControl的Wid
我有一些UserControl,它的DataContext绑定到ViewModel,
如何从XAML设置ViewModel的属性?可能吗?

UPD:
对不起,不太清楚,
我想要得到这样的东西:
UserControl的DataContext绑定到ViewModel,我需要将ViewModel的属性设置为某些东西(比方说,UserControl的Width属性).
可能吗?

UPD2:似乎不可能.我知道关于TwoWay绑定模式等等,我想做的事情 – 将ViewModel的属性设置为UserControl的一个

这个例子应该非常清楚

<Set Property={Binding SomePropertyOnViewModel} 
     Value={Binding RelativeSource={RelativeSource Self},Path=SomePropertyOnUserControl}>

解决方法

绑定以两种方式工作:即从源(例如视图模型)到目标(例如用户控制)以及从目标返回到源.

您可以通过绑定的Mode指定方向.

以下是BindingModes:

> TwoWay
> OneWay
> OneTime
> OneWayToSource

在您的情况下,如果要将usercontrol的width属性绑定到ViewModel的TheWidth属性:

案例A:

想要双向绑定,请使用Mode = TwoWay

<UserControl Width="{Binding TheWidth,Mode=TwoWay}">
<!-- your rest of code -->
</UserControl>

案例B:

想要仅从usercontrol绑定到viewmodel,请使用Mode = OneWayToSource

<UserControl Width="{Binding TheWidth,Mode=OneWayToSource}">
<!-- your rest of code -->
</UserControl>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读