2012-02-23 11 views
0

.net 4.0のDatePickerカレンダーにボタンを追加しようとしていますが、ボタンを配置していますが、カレンダーへのアクセス方法を理解できません。私が使用しているガイドでは、この参照を_Clickメソッド内で使用していますが、これを行うと 'this'はカレンダーではなくボタンを参照しています。だから、私の考えは、GetParentを使用してGetChildを使用してカレンダーへの参照を取得することでした。しかし、GetParentは「this」から私には利用できません。何か案は?イベントメソッド内から親にアクセスする

おかげ

<Style x:Key="DatePickerCalendarStyle" TargetType="{x:Type Calendar}" BasedOn="{StaticResource {x:Type Calendar}}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Calendar}"> 
        <Border BorderThickness="{TemplateBinding BorderThickness}" 
          Background="{TemplateBinding Background}" 
          BorderBrush="{TemplateBinding BorderBrush}"> 
         <StackPanel Orientation="Vertical"> 
          <StackPanel x:Name="PART_Root" HorizontalAlignment="Center"> 
           <CalendarItem x:Name="PART_CalendarItem" 
               BorderBrush="{TemplateBinding BorderBrush}" 
               BorderThickness="{TemplateBinding BorderThickness}" 
               Background="{TemplateBinding Background}" 
               Style="{TemplateBinding CalendarItemStyle}" /> 
           <Button x:Name="PART_TodayButton" 
             HorizontalAlignment="Center" 
             VerticalAlignment="Center" 
             Margin="10,0,10,2" 
             Content="Today" 
             Click="PART_TodayButton_Click"/> 

答えて

0

はカレンダーがあなたのボタンの親であるので、あなたがダウンし、その後ツリーに行くとする必要はありません、具体的GetParent方法

VisualTreeHelper Classを見てくださいもう一度、クリックハンドラーの引数にGetChild

+0

カレンダーは親ですか?私はスタックパネルがそうだと思った、これはずっと簡単になりました:) –

+0

申し訳ありませんが、私はカレンダーをボタンの祖先に言い換えましょう。したがって、カレンダーを取得するまでループ内で 'VisualTreeHelper.GetParent'を呼び出します – Terkel

0

を使用しないでください。これは、送信者(Object)があります。これは、VisualTreeHelperクラスを持つ親を検索する送信者からのものです。

関連する問題