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

c# – 将IsEnabled绑定到父ViewModel而不是UserControl ViewMode

发布时间:2020-12-16 01:42:14 所属栏目:百科 来源:网络整理
导读:我在silverlight中开发了一个包含多个子控件的用户控件.文本框,组合框等. 问题是,当我将UserControl包含到父视图中并将完整控件设置为IsEnabled = False时,仍然启用该特定UserControl中的子控件… 毕竟我发现了问题. 添加类似的东西意味着IsEnabled Binding
我在silverlight中开发了一个包含多个子控件的用户控件.文本框,组合框等.

问题是,当我将UserControl包含到父视图中并将完整控件设置为IsEnabled = False时,仍然启用该特定UserControl中的子控件…

毕竟我发现了问题.

添加类似的东西意味着IsEnabled Binding位于用户控件绑定中,而不是我自己在父级的datacontext中所期望的.

<localControls:TeamEmployeeSelector Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
          IsEnabled="{Binding CanModify}" DataContext="{Binding Confidentiality}"/>

题:
但是仍然存在如何将IsEnabled绑定到Parent的ViewModel的问题?因为将CanModify属性复制到Child Control的ViewModel并不是很优雅…

解决方法

而不是以某种方式修改绑定(例如,你可以使它依赖于其他答案中提出的其他控件名称)我将单独移动将被禁用的控件并控制DataContext将被更改的位置.例如:

<ContentControl IsEnabled="{Binding CanModify}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
    <localControls:TeamEmployeeSelector DataContext="{Binding Confidentiality}"/>
</ContentControl>

(编辑:李大同)

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

    推荐文章
      热点阅读