gpt4 book ai didi

c# - 将 IsEnabled 绑定(bind)到父 ViewModel 而不是 UserControl ViewModel

转载 作者:行者123 更新时间:2023-11-30 14:17:52 27 4
gpt4 key购买 nike

我在 SilverLight 中开发了一个用户控件,其中包含多个子控件。 文本框组合框等。

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

毕竟我发现了问题。

添加类似的东西,意味着 IsEnabled 绑定(bind)位于 UserControl 绑定(bind)中,而不是我在 DataContext 中的预期 parent 。

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

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

最佳答案

与其以某种方式修改绑定(bind)(例如,您可以使它依赖于其他答案中建议的其他控件名称),我将单独移动将被禁用的控件并控制 DataContext 将被更改。例如:

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

关于c# - 将 IsEnabled 绑定(bind)到父 ViewModel 而不是 UserControl ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com