我有一个wpf数据网格,
这是我的数据网格
<dg:DataGrid x:Name="dataGrid" AutoGenerateColumns="false"
ColumnHeaderStyle="{StaticResource columnHeaderStyle}"
AlternationCount="2" RowBackground="Beige"
RowStyle="{StaticResource rowStyle}"
AlternatingRowBackground="LightBlue"
HeadersVisibility="All"
HorizontalGridLinesBrush="#DDDDDD"
VerticalGridLinesBrush="#DDDDDD" Grid.ColumnSpan="2" Margin="0,0,0,26" IsReadOnly="True" ColumnHeaderHeight="30">
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Header=" Task Id" Binding="{Binding Path=TaskId}" Width="60" />
<dg:DataGridTextColumn Header="Order Description" Binding="{Binding Path=OrderDescription}" Width="120"/>
<dg:DataGridTextColumn Header="Final Client Name" Binding="{Binding Path=ClientName}" Width="110"/>
<dg:DataGridTextColumn Header="Order Date" Binding="{Binding Path=OrderDate}" Width="80"/>
<dg:DataGridTextColumn Header="Task Description" Binding="{Binding Path=TaskDescription}" Width="130"/>
<dg:DataGridTextColumn Header="Group Name Short" Binding="{Binding Path=GroupNameShort}" Width="116"/>
<dg:DataGridTemplateColumn MinWidth="100" Header=" Actions">
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="DetailButton_Click">Close</Button>
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
在aspx中更改文本我们使用onrowdatabound,例如,在wpf中如何更改字段订单描述和订单日期。 我有两个函数来更改文本,即convertDatetimeToDate(string datetime)e htmltotext(string text)。
答案 0 :(得分:2)
您可以在绑定上使用值转换器。创建一个实现IValueConverter的类,并将该类的实例设置为绑定的Converter属性。
public class DateTimeToDateConverter
: IValueConverter
{
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
// Call convertDatetimeToDate here and return the result
return value;
}
public object ConvertBack(
object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在您的XAML中,创建转换器的实例。您可能需要添加命名空间引用:
<Window.Resources xmlns:local="clr-namespace:YourNamespace">
<local:DateTimeToDateConverter x:Key="myConverter"/>
</Window.Resources>
并在绑定中使用它:
<dg:DataGridTextColumn
Header="Order Date"
Binding="{Binding Path=OrderDate, Converter={StaticResource myConverter}}"
Width="80"/>
在3.5 SP1或更高版本中,您还可以使用绑定上的StringFormat属性进行简单格式化。这应该通过相当于string.Format("{0:d}", OrderDate)
:
<dg:DataGridTextColumn
Header="Order Date"
Binding="{Binding Path=OrderDate, StringFormat='{}{0:d}'}"
Width="80"/>