WPF アプリケーションで、データグリッドにデータを表示します。このデータグリッドには、いくつかの DateTime 値があります。
DateTime が設定されていない場合、01/01/0001 が表示されます。DateTime は null 許容ではないため、問題ありません。
この場合、「 - 」を表示したいと思います。
コンバーターを使用する必要があると思います。
私はこれを試しました:
システムを使用する; System.Collections.Generic の使用; System.Linq を使用します。System.Text を使用します。System.Threading.Tasks の使用; System.Globalization の使用; System.Windows.Data を使用します。
namespace Phoenix_CRM
{
public class Converter
{
}
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return "--/--/----";
DateTime returnVal;
if (DateTime.TryParse(value.ToString(), out returnVal))
{
if (returnVal != DateTime.MinValue)
return returnVal;
else
return "--/--/----";
}
else
return "--/--/----";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return DateTime.MinValue;
DateTime val;
if (value.ToString() == "--/--/----")
return DateTime.MinValue;
if (DateTime.TryParse(value.ToString(), out val))
return val;
else
return DateTime.MinValue;
}
}
}
これを XAML に追加しました:
xmlns:converter="clr-namespace:myNameSpace"
後:
<DataGrid Grid.Column="0" Grid.Row="2">
<DataGrid.Columns>
<DataGridTextColumn Binding="{ Binding Path= dDate,StringFormat={}{0:dd/MM/yyyy HH:mm},Converter={converter:Converter.DateConverter}}" Header=" Date " Width="Auto" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
私のコードはコンパイルされません。
Converter={converter:Converter.DateConverter}}
誰でも私を助けてくれますか?