2014-01-07 3 views
0

DatePicker 스타일의 컨트롤 대신 텍스트와 날짜를 연결하는 사용자 지정 달력 컨트롤이 있습니다. 내가 이벤트를 트리거하는 Day_Changed 방법이사용자 정의 캘린더에 Selecteditem 또는 Clickevent를 추가하는 방법은 무엇입니까?

public event EventHandler<DayChangedEventArgs> DayChanged; 

: 나는 이벤트 핸들러를 가지고, 실제 달력 클래스에

public string Notes 
    { 
     get { return notes; } 
     set 
     { 
      notes = value; 
      if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Notes")); 
     } 
    } 

:이 사용자 지정 컨트롤 속성 노트와 일에 대한 클래스가

private void Day_Changed(object sender, PropertyChangedEventArgs e) 
    { 
     if (e.PropertyName != "Notes") return; 
     if (DayChanged == null) return; 

     DayChanged(this, new DayChangedEventArgs(sender as Day)); 
    } 

public class DayChangedEventArgs : EventArgs 
{ 
    public Day Day { get; private set; } 

    public DayChangedEventArgs(Day day) 
    { 
     this.Day = day; 
    } 
} 

그리고 실제 양식에,이 생성 된 이벤트는 폼과 방법을 실행하는 데 DayChanged 사용할 수 있습니다

,369을
<PersonnelTracker:Calendar x:Name="Calendar" DayChanged="Calendar_DayChanged"/> 

private void Calendar_DayChanged(object sender, DayChangedEventArgs e) 
    { 

    } 

지금 내가 원하는 것은 달력에서 날짜 또는 위치를 선택하고 양식 뒤에있는 방법으로 트리거 할 수있는 방법을 찾는 것입니다. 내가 가지고있는 복잡성은 캘린더 컨트롤 자체에 클릭 이벤트가 없기 때문에 아마도 하나만 만들면되지만, MouseButtonEventArgs을 사용할 수 없다는 것을 의미합니다. 단추.

최선의 방법에 대한 제안 사항이 있습니까?

Calendar Example 그래서이 일정하고, 이해하지 못하는 사람들을 위해,이 달력 제어 아무튼를, 난 그냥 특정 일에 클릭해야하고 내가 전에 언급 한 것처럼 아직 click 이벤트를 설정하는 아직 그 중 하나를 가지고 있지 않으므로 그러한 것을 창조 할 수있는 최선의 방법을 찾고 있습니다.

foreach (Day item in Calendar.Days) 
      { 

      } 
+0

귀하의 질문에 약간의 불명확 함이 있습니다. * 캘린더에서 날짜 나 위치를 선택하고 양식 뒤에있는 방법으로 트리거 할 수 있다는 것은 무엇을 의미합니까? 설명을 추가하거나 컨트롤의 모양을 묘사하는 이미지를 추가하십시오. – Sheridan

+0

@Sheridan 업데이트되었습니다. – user3157821

답변

1

좋아, 그래서 나는이 작업을 보는 방법은 간단하다 : 나는 앞으로 넣을 수 있습니다

만 추가 세부 사항은, 당신은 다음과 같이 다시 매일 항목을 통해 갈 수 있습니다. 캘린더에서 각 '요일'에 대해 Button을 사용하거나 매일 현재 구성된 모든 요소에 PreviewMouseDown 이벤트 중 하나를 사용합니다.

개인적으로 나는 Button으로 가고 싶습니다. 또는 그것에 대해 더 생각하면 ToggleButton이 더 좋을 것입니다. ToggleButton은 변환기를 사용하여 Background 속성에 바인딩하거나 Trigger 일 수도있는 IsChecked 속성을 가지고 있습니다. 그렇게하면 선택한 날짜를 쉽게 강조 표시 할 수 있습니다.

+0

좋아, 나는 대부분 이해하고 있다고 생각한다. 말하면 매일 버튼을 추가하십시오. 물리적으로 각 사각형에 단추를 추가하거나 각 사각형/일 단추를 만들어야한다는 의미입니까? – user3157821

+0

그래, 방금 각 사각형이 'ToggleButton'이 될 수 있지만 '정사각형'을 사용하여 일반 정사각형으로 표시된다는 의미였습니다. – Sheridan