我有一个像这样布置的网格;
+---------+---------+
| Image | Details |
| is | pane |
| here | for data|
| | entry |
+---------+---------+
| ListView here to |
| select data item |
| for top two panes |
+---------+---------+
这一切都很好,但是当列表视图中的选定项目没有图像时,我现在想将图像更改为另一组控件说“抱歉,没有可用的图像”
我尝试将图像包装在 DockPanel 中并在那里设置 DataTemplate(这样我就可以使用 DataTriggers),但 IntelliSense 说不!
ListView 使用 DataTriggers 来做类似的事情,但正如我所说,对于似乎无法访问 DataTemplate 的单个图像,我无法理解如何做到这一点。
简化的 XAML 如下;
<Grid DataContext="{Binding Source={StaticResource MyData}}">
<!-- row 0 col 0 -->
<Image x:Name="imgPhoto" Source="{Binding ElementName=MyListViewOfData, Path=SelectedItem.PathToImageOnDisk}" />
<!-- row 0 col 1 -->
<StackPanel DataContext="{Binding ElementName=MyListViewOfData, Path=SelectedItem}">
<TextBox Name="NameTextBox" Text="{Binding Name}" />
<TextBlock Name="DateCreatedTextBlock" Text="{Binding DateCreated}" />
</StackPanel>
<!-- row 1 cols 0,1 -->
<ListView ItemsSource="{Binding}" ItemTemplate="{StaticResource MyListViewTemplate}"
IsSynchronizedWithCurrentItem="True" Name="MyListViewOfData" />
</Grid>
在此先感谢 WPF 大师。
瑞安
更新:下面的两个答案(Abe 和 Jobi)都是正确的,谢谢。