WPF:可见性绑定,事件 = null
Posted
技术标签:
【中文标题】WPF:可见性绑定,事件 = null【英文标题】:WPF: Visibility binding, event = null 【发布时间】:2011-08-31 23:04:35 【问题描述】:我有以下代码:
public event EventHandler LoadingControlVisibilityChanged;
public Visibility LoadingControlVisibility
get return _LoadingControlVisibility;
set
_LoadingControlVisibility = value;
if (LoadingControlVisibilityChanged != null)
LoadingControlVisibilityChanged(this, EventArgs.Empty);
<Label x:Name="loading" Visibility="Binding Path=LoadingControlVisibility, Mode=OneWay" Content="No Devices Detected!" FontFamily="DynamicResource AppFont" HorizontalAlignment="Left" Margin="110,0,0,0" FontSize="21.333" />
第一次绑定工作,但在我更改 LoadingControlVisibility 后没有任何反应,调试后我注意到 event = null。请帮我解决这个问题。
我的文本属性没有问题:
public event EventHandler UUidChanged;
public string UUid
get return _uuid;
set
_uuid = value;
if (UUidChanged != null) UUidChanged(this, EventArgs.Empty);
<TextBox Text="Binding Path=UUid, Mode=OneWay" Margin="122.48,11.26,9,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="DynamicResource MediumFontSize" FontFamily="DynamicResource AppFont" Template="DynamicResource TxtBoxTemplate" Height="25" >
为什么不一样?
【问题讨论】:
我不确定我是否完全理解您在这里的目的。您正在绑定到一个名为 NoDevicesVisibility 的属性,但您并未在任何地方操作该属性。 另外,您的属性称为 LoadingControlVisibility,但您的 XAML 绑定到 Visibility ... Visibility="Binding Path=NoDevicesVisibility, Mode=OneWay" 抱歉复制了错误的代码。固定! 【参考方案1】:Binding 语句不会查找您定义的事件。您必须改为实现INotifyPropertyChanged。
【讨论】:
文本属性的工作方式是这样的。为什么能见度不同? @Mark - 您必须发布有关“文本属性”的更多信息。我不确定你指的是什么。 @Mark - 您没有展示如何在绑定中使用该属性,并且复制了错误的事件 :-) 我现在看到了 @CodeNaked - Label.DataContext = SUS; // sus 包含 uuid。抱歉有很多活动 @Mark - 我用你上面的代码尝试了一个测试,当我更改 UUid 时它没有更新。您的标签和文本框是否在同一个地方使用?尝试创建一个非常简单的示例并尝试重现您所看到的内容。 Binding 不会利用您尚未使用的事件,但没有足够的信息来解释 TextBox “工作”的原因。【参考方案2】:我不太确定你想要完成什么。我的理解是,您正在尝试将标签的可见性绑定到在另一个类中定义的名为 LoadingControlVisibility
的属性。如果是这种情况,那么您的绑定路径是错误的。您的绑定应如下所示:Visibility="Binding LoadingControlVisibility"
【讨论】:
Binding Path=MyProperty
与Binding MyProperty
相同
是的。我知道。在他的问题中,他说这是他的绑定:Visibility="Binding Path=NoDevicesVisibility, Mode=OneWay,这与他定义的属性的签名不匹配。他在我发布答案后编辑了这个问题。第二个对他的问题的评论证实了这一点。以上是关于WPF:可见性绑定,事件 = null的主要内容,如果未能解决你的问题,请参考以下文章