c# - xaml - 如何指定使用哪个 ContentTemplateSelector?
问题描述
我见过很多例子,内容控件的ContentTemplateSelector
属性被分配了一个StaticResource
.
例子:<ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>
MSDN 状态:
通常,当您为同一类型的对象拥有多个 DataTemplate 并且您希望提供自己的逻辑以根据每个数据对象的属性选择要应用的 DataTemplate 时,您会创建一个 DataTemplateSelector。
知道这一点 - 我的情况是我有两种类型的对象 ,其中每个对象都有自己的一组可以使用的数据模板。有什么方法可以简单地将内容控件ContentTemplateSelector
绑定到ContentTemplateSelector
视图模型上的属性?棘手的部分是数据模板是在 xaml 文件中定义的——我不能只ContentTemplateSelector
为该类初始化一个特定的新实例。
附加信息:我有一个父视图模型,其中每个子类都应表示为不同类型的 object。因此,根据切换的子类视图模型,它应该使用其各自ContentTemplateSelector
的数据模板。
我也让上面的内容与转换器一起工作,但我想远离这个。理想情况下,我希望拥有使此过程尽可能通用的代码。即不需要维护转换器代码以在将来添加新类型的对象只是为了返回正确的DataTemplateSelector
。情况应该是,只要添加了新的子类,它就会立即工作。
解决方案
推荐阅读
- c - 基于四个 16 位整数创建一个 64 位整数
- linux - 如何保持 FIFO 打开以供读取?
- visual-studio - LNK1181:Visual Studio 找不到目标文件
- css - 如何包装网格/弹性项目以尽可能充分地填充行
- java - 如何使mapstruct映射器返回null而不是所有字段设置为null的新对象
- javascript - 如何使用 javascript 从模态中获取文本值?
- javascript - 从 Promise 的捕获中添加到现有的 Promises.all 数组
- c# - Entity Framework Core 3.5.1 中的 Linq 查询
- python - 将 XML 转换为 python 字典
- r - R:矢量化在 R6 中设置活动字段