2

コレクションにバインドされた DataGrid があり、列の型の 1 つは DateTime です。

私のxamlコードは次のとおりです。

<DataGridTemplateColumn Width="260" Header="OrderDate">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <DatePicker SelectedDate="{Binding OrderDate,
                                       Mode=TwoWay,
                                       UpdateSourceTrigger=PropertyChanged}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

問題は、DatePicker のデフォルト値が 1/1/0001 であることです。

デフォルト値を設定するにはどうすればよいですか?

4

2 に答える 2

2

問題は次のように修正されました(質問が明確でない場合は申し訳ありません):

クラス宣言で:

public DateTime OrderDate { get; set; }

次のように変更します。

public DateTime? OrderDate { get; set; }

DateTime のデフォルト値を取得しているように見え、解決策は代わりに null を追加することでした。

于 2013-07-09T11:41:31.777 に答える
0

次のようにプロパティを追加できます。

public class SomeClass
{
    // Default value
    private DateTime myDateTime = new DateTime(2010, 1, 18);

    public string Sample
    {
        get;
        set;
    }

    public DateTime OrderDate
    {
        get
        {
            return myDateTime;
        }

        set
        {
            myDateTime = value;
        }
    }
}

たとえば、データを追加した後 - in ObservableCollection:

SomeCollection.Add(new SomeClass()
{            
    Sample = "Sample1",
    OrderDate = DateTime.Now, // Forcibly set date
});     

デフォルト値にこのパラメータのスキップを追加すると、次のようになります。

SomeCollection.Add(new Person()
{            
    Sample = "Sample1",
    // Skipping date, set the default value "2010, 1, 18"
});     
于 2013-07-09T11:24:31.387 に答える