我在WPF应用程序中遇到了一个有趣的现象。
我有两个独立的视图受影响 - 一个允许编辑统计信息,另一个允许编辑模板。在这两个视图中,我有一个导航栏,允许用户在搜索结果中向前和向后导航,我使用带有图像的按钮用于Back / Next UI。如果我浏览统计数据,然后通过模板,图像显示正常;但是,如果我回到统计数据,图像不再出现,但按钮和导航工作。如果我回到模板,图像仍然存在。如果我先做模板,然后再进行统计并返回模板,则相同的行为顺序仍然存在 - 统计信息会保留图像。所以它似乎与订单有关,而不是视图。
我已将图片添加到我的项目中,并将Build Action
设置为Resource
。我在我的ResourceDictionary
中引用了它们,如此:
<Image x:Key="ico_Right" Source="/GOKOMS.Home;component/Images/nav_single_right.png" />
在我的视图中,我引用为
<Button Content="{StaticResource ico_Right}" Width="35" Height="35"
Visibility="{Binding Vis_Next, UpdateSourceTrigger=PropertyChanged}"
ToolTip="Next Record"
Command="{Binding NavCommand}"
CommandParameter="Next"
/>
我知道这不是绑定本身出现的绑定;我甚至删除了那只是为了确定。感觉这是相关的代码,但如果需要我可以添加更多。以前有没有人经历过这样的事情?
答案 0 :(得分:2)
这是因为您的图像控件资源只能附加到可视树中的一个位置,并且您尝试将其附加到2个不同的按钮元素(在不同视图上)
您可以尝试重构视图,以便只有一个导航菜单实例,或者您可以创建多个图像资源,或者您可以改为使用BitmapImage资源:
资源:
<BitmapImage x:Key="ico_Right" UriSource="/GOKOMS.Home;component/Images/nav_single_right.png" />
按钮:
<Button Width="35" Height="35"
Visibility="{Binding Vis_Next, UpdateSourceTrigger=PropertyChanged}"
ToolTip="Next Record"
Command="{Binding NavCommand}"
CommandParameter="Next">
<Image Source="{StaticResource ico_Right}" />
</Button>