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>