gpt4 book ai didi

c# - 如何将数据绑定(bind)到控件的 Visibility 属性

转载 作者:太空宇宙 更新时间:2023-11-03 21:41:34 25 4
gpt4 key购买 nike

我知道控件的 Visibility 属性不能像其他属性那样绑定(bind)到数据。它需要某种转换器(?)。在尝试实现来自 this question 的解决方案时我遇到了一个编译器错误:The resource "BoolToVisible"could not be resolved。我猜我必须创建一个名为 BoolToVisibleResourceKey,我只是不知道如何做。

我请求有人告诉我绑定(bind)到控件的 Visibility 属性的正确方法。

*我将其添加到的控件是一个单选按钮。* 我的数据模型中的 isVisible 有一个 bool 属性,它将绑定(bind)到这个单选按钮。

数据模型属性:

private bool _isVisible = true;

public bool IsVisible
{
get { return _isVisible; }
set
{
_isVisible = value;
NotifyPropertyChange(() => IsVisible);
}
}

XAML:

<RadioButton Visibility="{Binding DataModel.IsVisible,Converter={StaticResource ResourceKey=BoolToVisible},RelativeSource={RelativeSource TemplatedParent}}" ... />

谢谢。

最佳答案

2 个例子:

第一个使用问题中所述的转换器:

  public class BooleanToVisibilityConverter : IValueConverter 
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null || !(value is bool))
return Binding.DoNothing;

return (bool)value ? Visibility.Visible : Visibility.Collapsed;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}

在 xaml 中:

<Window x:Class="Stackoverflow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
xmlns:local="clr-namespace:Stackoverflow"
>
<Window.Resources>
<local:BooleanToVisibilityConverter x:Key="booleanToVisibiltyConverter"/>
</Window.Resources>

<Grid>
<Button Visibility="{Binding IsSomeThing,Converter={StaticResource booleanToVisibiltyConverter}}"/>
</Grid>

第二个:

在您的 DataContext 中,您可以直接拥有一个可见性属性

CS:

    private Visibility _myControlVisibility;
public Visibility MyControlVisibility
{
get { return _myControlVisibility; }
set { _myControlVisibility = value; }
}

xaml:

    <Button Visibility="{Binding MyControlVisibility}"/>        

关于c# - 如何将数据绑定(bind)到控件的 Visibility 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19058879/

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