将IsEnabled绑定到父ViewModel而不是UserControl ViewModel

Bit*_*KFu 3 .net c# data-binding silverlight mvvm-light

我在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}"/>
Run Code Online (Sandbox Code Playgroud)

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

Sno*_*ear 6

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

<ContentControl IsEnabled="{Binding CanModify}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
    <localControls:TeamEmployeeSelector DataContext="{Binding Confidentiality}"/>
</ContentControl>
Run Code Online (Sandbox Code Playgroud)