WPF 后台创建列如何设置Converter

前台代码:创建新列并绑定内容

<Window x:Class="MethodConfiguration.ShowTable"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MethodConfiguration;assembly="
        Title="ShowTable" Height="372" Width="892" Loaded="Window_Loaded">
    <Window.Resources>
    <local:MyConverter x:Key="myConverter"/>
</Window.Resources>
    <Grid x:Name="gridMain">
        <DataGrid Grid.Row="1" RowHeaderWidth="50" Width="1100" CanUserSortColumns="False" x:Name="dataGrid1" MouseDoubleClick="dataGrid1_MouseDoubleClick" SelectionChanged="dataGrid1_SelectionChanged"  AutoGenerateColumns="False" CanUserAddRows="False" IsReadOnly="True" Grid.RowSpan="2" Grid.ColumnSpan="5">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding hmd ,Converter={StaticResource myConverter}}" Header="黑名单" Width="70"/>
        <DataGridTextColumn Binding="{Binding CreateUserName}" Header="添加人" Width="100"/>
        <DataGridTextColumn Binding="{Binding CreateTime,StringFormat='yyyy-MM-dd HH:mm:ss'}" Header="添加时间" Width="180"/>
    </DataGrid.Columns>
</DataGrid>
    </Grid>
</Window>

首先引入转换器类的命名空间,由于我们实在项目的命名空间下wpfbase定义的类,不需要再引入命名空间。在页面的资源中添加转换器资源,<local:MyConverter x:Key="myConverter"/>,MyConverter是后台文件中定义的类名,myConverter是现在定义的转换器资源名称,在后面使用,这里注意,添加这行代码时编译器可能会提醒"命名空间中找不到此名称",不用在意这个,继续往下做。在黑名单那一列的绑定数据中,Binding="{Binding hmd ,Converter={StaticResource myConverter}}"使用转换器资源实现数据内容的转换。效果如下:

后台代码:

 public class MyConverter : IValueConverter
 {
     /// <summary>
     /// 源到目标
     /// </summary>
     /// <param name="value"></param>
     /// <param name="targetType"></param>
     /// <param name="parameter"></param>
     /// <param name="culture"></param>
     /// <returns></returns>
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     {
         bool boolValue = false;
         if (value != null)
             boolValue = (bool)value;
         return boolValue ? "是" : "否";
     }
     /// <summary>
     /// 目标到源
     /// </summary>
     /// <param name="value"></param>
     /// <param name="targetType"></param>
     /// <param name="parameter"></param>
     /// <param name="culture"></param>
     /// <returns></returns>
     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     {
         throw new NotImplementedException();
     }
 }

在后台我们创建了一个继承至IValueConverter的MyConverter类,在这个类中我们必须覆盖两个接口函数,Convert和ConvertBack。Convert函数实现了从数据源到呈现目标的数据转换,其中true对应的是"是",false对应的是"否";ConvertBack函数实现了从呈现目标到数据源的转换,"是"对应的是true,"否"对应的是false。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值