我在WPF应用程序中遇到了一个有趣的现象。
我有两个受影响的独立视图——一个允许编辑统计信息,另一个允许修改模板。在这两个视图中,我都有一个导航栏,它允许用户在搜索结果中前后导航,并且我使用带有图像的按钮作为"上一步/下一步"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"
/>
我知道这不是按钮本身所显示的绑定;为了确定起见,我甚至删除了它。感觉这是相关的代码,但如果需要,我可以添加更多。以前有人经历过这样的事情吗?
这是因为您的图像控制资源只能附加到视觉树中的一个位置,而您正试图将其附加到两个不同的按钮元素(在不同的视图上)
你可以尝试重组你的视图,使导航菜单只有一个实例,也可以创建多个图像资源,或者你可以使用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>