zoukankan      html  css  js  c++  java
  • 界面开发控件DevExpress WPF开发指南

    下载DevExpress v20.2完整版 

    DevExpress WPF Subscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

    问题

    有一个用数据填充的GridControl和一个RadioListFilterElement,它引用网格为特定字段提供过滤器控件。 这可以正常工作,但是有一种情况需要RadioListFilterElement显示与实际过滤的值不同的值。 例如,有问题的字段称为StatusID,在数据库中可能的值为:

    • 'A'
    • 'D'
    • 'S'

    但是在RadioListFilterElement中,想像这样显示它们:

    • 'Active'
    • 'Deleted'
    • 'Suspended'

    可以在文本框或类似控件的上下文中通过简单地使用转换器来执行此操作,但是在FilterElement的情况下,无法找到使其工作的方法。

    当前过滤器元素:

    XAML

    <dxfui:RadioListFilterElement Context="{Binding FilteringContext, ElementName=UserListingGrid}" FieldName="StatusID" >
    
    </dxfui:RadioListFilterElement>

    当前过滤器元素:

    C#

    class UserStatusIDConverter : IValueConverter
    {
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    { 
    if(value != null)
    {
    if(value.ToString() == "A")
    {
    return "ACTIVE";
    }
    if (value.ToString() == "D")
    {
    return "DELETED";
    }
    if (value.ToString() == "S")
    {
    return "SUSPENDED";
    }
    }
    return false;
    }
    
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    { 
    if(value == null)
    {
    return false;
    } 
    if(value.ToString() == "ACTIVE")
    {
    return "A";
    }
    else if(value.ToString() == "DELETED")
    {
    return "D";
    }
    else if (value.ToString() == "SUSPENDED")
    {
    return "S";
    }
    return false;
    }
    }
    解决方案

    最简单的方法是为过滤器元素创建自定义表示形式,可以使用FilterModelTemplate属性来实现。 例如:

    XAML

    <dxfui:RadioListFilterElement Context="{Binding FilteringContext, ElementName=grid}" FieldName="Name">
    <dxfui:RadioListFilterElement.FilterModelTemplate>
    <DataTemplate>
    <dxe:ListBoxEdit 
    ItemsSource="{Binding FilterValues}"
    SelectedItem="{Binding SelectedFilterValue}"
    ShowCustomItems="True">
    <dxe:ListBoxEdit.ItemTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding Value, Converter={...}}" />
    </DataTemplate>
    </dxe:ListBoxEdit.ItemTemplate>
    <dxe:ListBoxEdit.StyleSettings>
    <dxe:RadioListBoxEditStyleSettings />
    </dxe:ListBoxEdit.StyleSettings>
    </dxe:ListBoxEdit>
    </DataTemplate>
    </dxfui:RadioListFilterElement.FilterModelTemplate>
    </dxfui:RadioListFilterElement>

    上DevExpress中文网,获取第一手最新产品资讯!

    DevExpress技术交流群3:700924826      欢迎一起进群讨论

  • 相关阅读:
    Ninject Lazy Load问题
    log4net 极简配置
    log4net 使用指南,最常遇到的问题整理。。。
    【应聘】阿里巴巴Java面试题目
    【Unity3D】自动寻路(Nav Mesh Agent组件)
    【unity3D】鼠标控制camera的移动、放大(俯视浏览效果、LOL摄像机移动效果)
    【Unity3D】枪战游戏—弹孔设置
    【Unity3D】枪战游戏—发射子弹、射线检测
    【Unity3D】Unity自带组件—完成第一人称人物控制
    软件工程【第5章】- 需求工程与需求设计
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/14333391.html
Copyright © 2011-2022 走看看