使用触发器更改 xaml 中的图像源无法正常工作
我需要根据视图模型中的某些布尔属性更改工具栏中的图像。我正在使用触发器来更改图像源。这是正确的方法吗?我的代码运行不正常,有时可以工作,但有时图像保持不变。
<Image x:Key="startPauseResumeAnalysisToolbarImage" >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="Resources/ToolbarIcons/play.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsAnalysisRunning}" Value="True" >
<Setter Property="Source" Value="Resources/ToolbarIcons/pause.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
I need to change image in toolbar according to some boolean property in my viewModel. I am using trigger to change image source. Is it the right way? My code is not running properly, sometimes it works, but sometimes the image stay unchanged.
<Image x:Key="startPauseResumeAnalysisToolbarImage" >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="Resources/ToolbarIcons/play.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsAnalysisRunning}" Value="True" >
<Setter Property="Source" Value="Resources/ToolbarIcons/pause.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它应该有效。如果没有其余的代码,很难理解为什么它不会。您是否在具有 IsAnalysisRunning 属性的任何类中实现 INotifyPropertyChanged 接口?
这是我用来测试这个的一个小示例:
MainWindow.xaml
MainWindow.xaml.cs:
It should work. Difficult to see why it does not without the rest of the code. Are you implementing the INotifyPropertyChanged interface in whatever class has the IsAnalysisRunning property?
Here is a small sample i used to test this:
MainWindow.xaml
MainWindow.xaml.cs: