C# WPF DataGrid-Wandler

Ich hab schon versucht zu formatieren, Felder in einem datagrid nun seit Tagen. Wie kann ich ändern Sie einfach die Frist ist ein Datum-Feld aus access. In diesem Versuch bekomme ich immer die Fehlermeldung:

'{local:DateConverter}' Wert ist keine gültige MarkupExtension Ausdruck. Nicht auflösen kann 'DateConverter" im namespace "clr-namespace:Yabba'. 'DateConverter' muss eine Unterklasse von MarkupExtension.

Jedoch die Beispiele, die ich arbeitete, wurde von allen show DateConverter : IValueConverter.

Bin ich ziemlich viel, nur wollen, ändern Sie die Spalte, zu der Liste, was ich will, basierend auf dem Datum. Aber bekomme keine 1 Beispiel/Methode zu arbeiten.

XAML

<Window Name="MainForm" x:Class="Yabba.MainWindow"
    xmlns:local="clr-namespace:Yabba"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="655.217" Width="887.851" Loaded="Window_Loaded">
<Window.Resources>
    <local:DateConverter x:Key="dateConverter"/>
</Window.Resources>
<Grid>
    <DataGrid Name="dataGrid1"  AutoGenerateColumns="False" PreviewKeyDown="dataGrid1_KeyDown" CanUserAddRows="false" SelectionUnit="FullRow" IsReadOnly="True" SelectionMode="Single" HorizontalAlignment="Left" VerticalAlignment="Top" Height="348" Width="753" SelectionChanged="dataGrid1_SelectionChanged" Margin="0,20,0,0" MouseDoubleClick="dataGrid1_MouseDoubleClick">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Question" Binding="{Binding title}"></DataGridTextColumn>
            <DataGridTextColumn Header="Period" Binding="{Binding started, Converter={local:DateConverter}}"></DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

Code

namespace Yabba {
///<summary>
[ValueConversion(typeof(DateTime), typeof(String))]
public class DateConverter : IValueConverter {
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
        DateTime date = (DateTime)value;
        return date.ToShortDateString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
        string strValue = value as string;
        DateTime resultDateTime;
        if (DateTime.TryParse(strValue, out resultDateTime)) {
            return resultDateTime;
        }
        return DependencyProperty.UnsetValue;
    }
}

Was mache ich hier falsch?

Zusätzliche Hinweise für jeden, der diesen als Beispiel: (nicht bezogen auf die Frage, zeigen Sie ausgewählte Antwort für Antwort)

Möglicherweise müssen Sie ändern die Art, je.

[ValueConversion(typeof(DateTime), typeof(String))]

Musste ich mir zu

[ValueConversion(typeof(String), typeof(String))]

Dann eine Neufassung, die DateTime -

DateTime date = DateTime.Parse((string)value);
InformationsquelleAutor Matty | 2013-03-29
Schreibe einen Kommentar