2012-03-22 5 views
1

Caliburn Micro의 이벤트에 대한 사용자 지정 규칙을 만들 수 있습니까? 대부분의 컨트롤 (예 : 버튼의 경우 '클릭')에 '기본'이벤트가있는 것 같지만 다른 이벤트 (기본 설정 이외에)에 대한 자체 규칙을 만들고 싶습니다.Caliburn Micro 사용자 지정 이벤트 규칙

예를 들어, 나는 "인 selectionchanged"을 설정할 수 있도록하고 싶습니다 => "{SelectedItemName} 변경"규칙은, 그래서 나는 이런 식으로 뭔가 할 수있는 :

XAML :

<ListView x:Name="Items"/> 

코드 :

public ObservableCollection<string> Items; 
public string SelectedItem { get; set; } //Wired automatically by Caliburn 

public void SelectedItemChanged() { ... } 

대부분의 예 난 그냥 "selectedItem가"에 대한 세터 내에서 메소드를 호출 찾을 수 있지만, 내가 사용하기 때문에 PostSharp 내 INotifyPropertyChange를 처리하는 것을 방지하고 싶습니다 d 업데이트가 필요하므로이 같은 규칙으로 자동 속성을 제거하고 속성 + 백킹 필드로 바꿀 필요가 없습니다.

+1

전혀 관련이 없지만 재미 있습니다. http://caliburnmicro.codeplex.com/discussions/243905 –

답변

1

는 나는이 적절한 경우에 사용자 정의 convenition을 만들 수 있는지 확실하지 않습니다,하지만 당신은 단순히 다음 구문을 사용하여 뷰 모델의 방법 인 selectionchanged 첨부 할 수 있습니다 :이 경우

<ListView x:Name="Items" cal:Message.Attach="[Event SelectionChanged] = [Action SelectedItemChanged()]"/>

당신 SelectedItem 속성을 변경하지 않아도됩니다.

관련 문제