刚学的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赋初值,控制控件的显示和隐藏了。
回答不易,记得采纳呀。解决 无用评论 打赏 举报