gpt4 book ai didi

c# - DateTime 需要转换为字符串 wpf

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:07 25 4
gpt4 key购买 nike

<DataGrid....
<DataGrid.Resources>
<DataTemplate DataType="{x:Type DateTime}">
<TextBlock Text="{Binding StringFormat={}{0:d}}" />
</DataTemplate>
</DataGrid.Resources>
...
<DataGridTemplateColumn Header="Время оплаты">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" Text="{Binding date_payment}" Width="Auto" Height="Auto" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

但此列的类型为 DateTime...我需要将此列转换为这种类型(字符串),因为我需要重命名此列上的值行,我使用事件 LoadingRow 所以

DataRowView item = e.Row.Item as DataRowView;
DataRow row = item.Row;
var time = row[4];
if (Convert.ToString(time) == "01.01.0001 0:00:00")
{
row[4] = "No payment";
}

但是错了,row没有转成字符串,求助

最佳答案

首先,您同时拥有单元格模板和数据模板。选一个。其次,由于无论如何您都有数据模板,因此没有理由创建转换器,更不用说代码隐藏事件处理程序了。您可以使用触发器将所有相关代码和文本字符串(如果您需要本地化怎么办?)很好地保存在一个地方:

<DataTemplate TargetType="{x:Type DateTime}">
<TextBlock x:Name="text" Text="{Binding StringFormat={}{0:d}}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static DateTime.MinValue}">
<Setter TargetName="text" Property="Text" Value="No payment"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>

关于c# - DateTime 需要转换为字符串 wpf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11468165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com