我有以下代码:
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。请帮我解决这个问题。
我的text属性没有问题:
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" >
为什么会有所不同?
答案 0 :(得分:2)
Binding语句不会查找您定义的事件。您必须改为INotifyPropertyChanged。
答案 1 :(得分:-1)
我不太确定你想要完成什么。我的理解是您尝试将标签的可见性绑定到另一个类中定义的名为LoadingControlVisibility
的属性。如果是这种情况,那么您的路径在绑定中是错误的。您的绑定应如下所示:Visibility="{Binding LoadingControlVisibility}"