【问题标题】:Prevent Checkobx from User action WPF阻止用户操作 WPF 中的复选框
【发布时间】:2021-09-19 14:21:14
【问题描述】:

我有一个显示用户和用户属性的应用程序。 我在复选框 s0 中显示属性“是管理员”,如果他是管理员,则检查复选框,如果不是,则不是。

这是我的 XAML 代码

<CheckBox IsChecked="{Binding LoadedUser.IsAdmin, Mode=OneWay}" Margin="5,7,0,0"/>

因为它应该只显示用户是否是管理员,所以您不应该选中或取消选中复选框。 是否有可能“阻止”或“保护”复选框不被用户点击?

【问题讨论】:

  • 为什么任何人都可以点击这个?有一些小图标或文字表明用户是管理员不是更好吗?
  • 是的,我想稍后我会将其更改为图标或类似的东西。我只是在写第一个草图来检查功能

标签: wpf xaml checkbox


【解决方案1】:

您可以使用 IsEnabled 属性来启用/禁用复选框,具体取决于当前用户是否为管理员。 例如,

<CheckBox IsEnabled="{Binding CurrentUser.IsAdmin}" IsChecked="{Binding LoadedUser.IsAdmin, Mode=OneWay}" Margin="5,7,0,0"/>

禁用状态向非管理员用户传达他们无法访问它

【讨论】:

  • 现在你的建议不起作用,因为我没有属性检查当前用户是否是管理员。也许你把我上面的问题弄错了。但是感谢您的回答
  • 可能是我理解错误的问题,所以如果你没有决定是启用还是禁用这个属性的东西,当你实际启用它时可能是什么用例?如果它应该总是假的,那么你真的需要一个复选框吗?
  • 所以整个Application就是一个用户管理。管理员可以显示用户的详细信息,这些详细信息的一个属性是显示所选用户是否为管理员。
【解决方案2】:

您可以设置IsHitTestVisible="False" 或将此属性绑定到模型:

<CheckBox IsHitTestVisible="False" IsChecked="{Binding LoadedUser.IsAdmin, Mode=OneWay}" Margin="5,7,0,0"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2012-08-26
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多