使用wpf在数据网格中自动生成序列号?

时间:2016-07-19 05:35:21

标签: wpf xaml data-binding

如何使用wpf?

在datagrid中自动生成序列号
 <DataGridTextColumn Header="Sl#" 
                     x:Name="serialnumber" 
                     Binding="{Binding Serial}"/>

1 个答案:

答案 0 :(得分:0)

创建一个转换器,其中包含解析绑定值所需的任何逻辑并返回序列号:

namespace MyWPFAPP.Converters
{
   public class ConvertToSerialNumber : IValueConverter
   {
       public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
       {
           return $"0000{value}";
       }
       public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
       {
           throw new NotImplementedException();
       }
    }
}

然后使用页面的Xaml中的转换器进行绑定:

<Window 
 xmlns:converters="clr-namespace:MyWPFAPP.Converters"
...>
<Window.Resources>
    <converters:ConvertToSerialNumber x:Key="ToSerialNumber" />
</Window.Resources>
...
<DataGridTextColumn Header="Sl#" 
                    x:Name="serialnumber" 
                    Binding="{Binding Serial, Converter={StaticResource ToSerialNumber}}"/>

请注意,可见序列号就是这样,在屏幕上可见,并且不会更改示例serialnumber中的值。

坦率地说,最好扩展(可能在类(?)上使用partial (Type) C#范例),然后在类serialnumber上使用ToSerialNumber属性来生成这样的值。