gpt4 book ai didi

wpf - 将可见性绑定(bind)到 Text.Length

转载 作者:行者123 更新时间:2023-12-04 20:30:13 25 4
gpt4 key购买 nike

我实现了一个小的视觉指示器(只是一个带边框的文本 block ),如果此时没有要显示的文本,它应该被隐藏。文本绑定(bind)到 Indicator 属性,数据上下文似乎设置正确。

到目前为止我得到的是这个(出现指示文本,隐藏/显示不起作用):

<Border>
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Indicator.Length}" Value="0">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBlock Text="{Binding Indicator}" />
</Border>

我的问题是,如果文本长度为零,则元素不会被隐藏。

你发现我的错误了吗?

指示器是相应 View 模型的一部分:

public string Indicator
{ get; set;}

更新

如果我将上面的属性更改为:

public const string IndicatorPropertyName = "Indicator";
private string _indicator = "";
public string Indicator
{
get
{ return _indicator;}

set
{
if (_indicator == value) { return;}

RaisePropertyChanged(IndicatorPropertyName);
}
}

为什么只有在我引发 PropertyChanged 事件时它才有效?

最佳答案

我认为顾名思义,触发器仅在事件发生时执行或检查其状态。在 DataTrigger 的情况下,它是接口(interface) INotifyPropertyChangedPropertyChanged 事件。

如果不引发事件,DataTrigger 不知道他必须检查绑定(bind)以及值是否满足触发条件。

关于wpf - 将可见性绑定(bind)到 Text.Length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13680951/

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