【发布时间】:2016-11-26 15:17:57
【问题描述】:
我有这段代码,当用户控件中的属性发生更改时,我想在主窗口中更新图像。但不知何故,我无法让触发器工作。
一些 XAML 代码
<StatusBar MinHeight="10" MaxHeight="20" VerticalAlignment="Bottom" Grid.Row="2">
<Image x:Name="SomeNameHere">
<Image.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=pingable}" Value="false">
<Setter Property="Image.Source" Value="Icons/MainWindow/StatusOffline_stop_32x.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=pingable}" Value="true">
<Setter Property="Image.Source" Value="Icons/MainWindow/StatusOK_32x.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</StatusBar>
属性来自的部分
public bool pingable { get; set; }
public MainWindow()
{
InitializeComponent();
pingable = PingHost("some random IP");
}
public bool PingHost(string nameOrAddress)
{
pingable = false;
Ping pinger = new Ping();
try
{
PingReply reply = pinger.Send(nameOrAddress);
pingable = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
return pingable;
}
我在 XAML 编辑器中调试期间看到了该属性,因此它似乎可以被识别,并且我还看到该值适合。但不知何故,setter 没有被执行。 有人对此有想法吗?
谢谢,祝你有美好的一天!
【问题讨论】: