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>