2

Windows8にはまだ具体化されたDatePickerがないので、私はそこにあるいくつかの例に従うことにしました。

それ自体は正常に機能しますが、DatePickerに事前入力したい日付があります。

以下のDatePicker.xaml.csファイルにプロパティを作成しました。

public DateTime dateVal
{
    get
    {
        return m_dateVal;
    }
    set
    {
        m_dateVal = value;
    }
}

次に、DatePickerコントロールを表示しているページで、プロパティにバインドしようとしました。

<dp:DatePicker Foreground="Black" Height="100" Margin="10,25" Grid.Column="1" VerticalAlignment="Center" BorderBrush="Black" BorderThickness="1" dateVal="{Binding repairInfoSingle.repairDate, Mode=TwoWay}"/>

ただし、DatePicker.xaml.csファイルにステップインすると、dateValプロパティに渡した日付が入力されませんでした。

次に、出力ウィンドウにエラーが表示されます。

WinRT情報:プロパティ'aG.Common.DatePicker.dateVal'への割り当てに失敗しました。[行:125位置:170]

日付を渡すことを望んでいたので、コンストラクターでSelectedIndex月、日、年を解析して値を設定できました。

4

2 に答える 2

4

プロパティにバインドする場合(例:use DateVal={Binding ...})-DateValを通常のCLRプロパティにすることはできません。DependencyProperty
に変更する必要があります

したがって、あなたの例では:

public DateTime DateVal
{  
    get { return (DateTime) GetValue(DateValProperty); }  
    set { SetValue(DateValProperty, value); } 
}

public static readonly DependencyProperty DateValProperty = 
  DependencyProperty.Register("DateVal", typeof(DateTime), typeof(DatePicker),
  new PropertyMetadata(DateTime.MinValue));

これで、希望どおりに正常に動作するはずです。

<dp:DatePicker DateVal="{Binding repairInfoSingle.repairDate, Mode=TwoWay}"/>
于 2013-03-02T23:26:25.613 に答える
2

値をバインドする場合は、でdateValを作成する必要がありdateValますDependancyPropertyDatePicker.xaml.cs

    public DateTime DateVal
    {
        get { return (DateTime)GetValue(DateValProperty); }
        set { SetValue(DateValProperty, value); }
    }

    public static readonly DependencyProperty DateValProperty =
        DependencyProperty.Register("DateVal", typeof(DateTime), typeof(DatePicker), new PropertyMetadata(DateTime.MinValue));
于 2013-03-02T23:29:23.013 に答える