得到一个内部有很多对象的视图,这些对象从 DataTemplate 声明中获取它们的视图:
<DataTemplate DataType="{x:Type vm:StatusAViewModel}" >
<vw:StatusAView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:StatusBViewModel}" >
<vw:StatusBView />
</DataTemplate>
现在我想根据要包含的数据类型显示一个包含其内容的弹出窗口:
<Popup AllowsTransparency="True"
IsOpen="{Binding IsPopupOpen,Mode=OneWay}"
PlacementTarget="{Binding PopupPlacementElement}" Placement="{Binding PopupPlacementMode}"
HorizontalOffset="{Binding PopupHOffset}" VerticalOffset="{Binding PopupVOffset}">
<ContentPresenter x:Name="StuckHere" Content="{Binding PopupData}" />
</Popup>
StuckHere 上的 ContentTemplateSelector 不起作用,因为它只评估一次,并且当 PopupData 更改时,不会重新选择模板。
我能找到的所有示例都依赖于默认数据模板,我不能在我的情况下使用它,因为我已经为主视图设置了默认数据模板,我只希望这个不同的模板影响我的弹出窗口。
有什么线索吗?