WPF选择器使用(自用)

解释:多个DataTemplate可用于同一类型的对象,之这样可以根据每个数据对象的属性,提供自己的逻辑来选择要应用的DataTemplate也需要创建DtataTemplate,也需要创建DataTemplateSlelector。如果有不同类型的对象,可以对DataTemplate设置DataType( 也就是根据不同数据选择不同的模板)

  • 新建Selector文件夹
  • 建立对应的层级关系
  • 界面使用选择器
//样式模型说明
  internal class DeafultItemDataTemplateSelector : DataTemplateSelector {
        public DataTemplate DefaultTemplate { get; set; }
        public DataTemplate NormalTemplate { get; set; }
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            var isDefault = Convert.ToBoolean(item);
            if (isDefault) {
                return DefaultTemplate;
            }
            return NormalTemplate;
        }
    }
//文件选择 继承DeafultItemDataTemplateSelector 选择器
internal class FileLoadDefaultDataTemplateSelector : DeafultItemDataTemplateSelector {
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            var imgInfo = item as ImageLoadInfo;
            return base.SelectTemplate(imgInfo.IsDefaultItem, container);
        }
    }
 <dialog:Dialog.Resources>
        <selector:FileLoadDefaultDataTemplateSelector x:Key="DefaultDataTemplateSelector">
            <selector:DeafultItemDataTemplateSelector.DefaultTemplate>
                <DataTemplate>
                  写具体的样式
                </DataTemplate>
            </selector:DeafultItemDataTemplateSelector.DefaultTemplate>
            <selector:DeafultItemDataTemplateSelector.NormalTemplate>
                <DataTemplate>
                 写具体的样式
                </DataTemplate>
            </selector:DeafultItemDataTemplateSelector.NormalTemplate>
        </selector:FileLoadDefaultDataTemplateSelector>
    </dialog:Dialog.Resources>

默认样式样式大部分会在列表下进行(ListView)

  ItemTemplateSelector="{StaticResource DefaultDataTemplateSelector}"
  绑定对应的样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值