WPF转换器添加

Posted wxstar8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF转换器添加相关的知识,希望对你有一定的参考价值。

1、编写转换器类

namespace Eastups.Utility.Converters

    public class MenuNameConvert : IValueConverter
    
        #region Public Property

        public IList<MenuInfo> DataSource = new List<MenuInfo>();

        #endregion

        #region public Methods
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        
            string menuName = string.Empty;

            try
            
                int menuId = (int)value;

                menuName = DataSource.Where(o => o.ID == menuId).FirstOrDefault().Menu_Name;
            
            catch (Exception ex)
            
                Eastups.Utility.Logger.Write(LogType.Error, ex.Message.ToString());
            

            return menuName;
        

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        
            throw new NotImplementedException();
        

        #endregion
    


2、在页面后台添加资源

   private void AddResources()
        
            try
            
                //Add Resources
                Eastups.Utility.Converters.MenuNameConvert converter = new Eastups.Utility.Converters.MenuNameConvert();
                converter.DataSource = new MenuLogic().GetMenus();
                this.Resources.Add("MenuName", converter);
            
            catch (Exception ex)
            
                Eastups.Utility.Logger.Write(LogType.Error, ex.Message.ToString());
            
        

3、在页面前台绑定资源

      (1)、StaticResource 资源名称为在后台添加的名称:MenuName

      (2)、Width="3*" 表示列宽度会按照宽度比例显示。

 <dxg:GridControl.Columns>
                                    <dxg:GridColumn Header="菜单名称"  Binding=" Binding Menu_ID,Converter=StaticResource MenuName" Width="3*"/>
                                    <dxg:GridColumn Header="导引名称" FieldName="Navigation_Name"  Width="3*"/>
                                    <dxg:GridColumn Header="模板名称" FieldName="Template_Name"  Width="3*" />
                                </dxg:GridControl.Columns>









以上是关于WPF转换器添加的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF 中使用 MVVM 将 n 个矩形添加到画布

WPF 在绑定表达式添加计算

在 VS 2010 中将控制台应用程序转换为 WPF 应用程序时遇到问题

winform 添加wpf 窗体怎么使用

WPF DataGrid自动生成序号

Visual Studio 版本转换工具WPF版开源了