全家桶没了 2023-03-07 15:46 采纳率: 50%
浏览 39

C# MVVM模式下给visibility赋初值不好用

刚学的MVVM模式,然后给xaml里面控件的visibility绑定vm里面的属性,想动态控制他的显示和隐藏,但是绑定完赋初值不好用,想隐藏的控件还是没有隐藏

  • 写回答

3条回答 默认 最新

  • 霸都小魔女 2023-03-07 15:59
    关注

    小魔女参考了bing和GPT部分内容调写:
    MVVM模式下,给visibility赋初值不好用可能是因为没有设置正确的绑定方式。在xaml中,可以通过绑定vm里面的属性来控制控件的显示和隐藏。例如:

    <Button Visibility="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}" />
    

    其中IsVisible是vm里面的属性,BooleanToVisibilityConverter是转换器,用于将bool值转换为Visibility值,代码如下:

    public class BooleanToVisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return (bool)value ? Visibility.Visible : Visibility.Collapsed;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return (Visibility)value == Visibility.Visible;
        }
    }
    

    另外,在vm中,要给IsVisible赋初值,例如:

    public class MyViewModel
    {
        public bool IsVisible { get; set; }
    
        public MyViewModel()
        {
            IsVisible = false;
        }
    }
    

    这样,就可以正确的给visibility赋初值,控制控件的显示和隐藏了。
    回答不易,记得采纳呀。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月7日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价