2016-08-30 10 views
2

私は、カスタムルーティングイベントとユーザーコントロールがあります:私は、データグリッドを使用していると私は私のViewModelにSlectedItemを渡したい私のXAMLでカスタムルーティングイベントを含むユーザーコントロールを使用してcaliburn microでパラメータを渡す方法はありますか?

public partial class DummyControl : UserControl 
{ 
    public static readonly RoutedEvent ActionClickEvent = EventManager.RegisterRoutedEvent(
     "ActionClick", 
     RoutingStrategy.Bubble, 
     typeof(RoutedEventHandler), 
     typeof(DummyControl)); 

    public event RoutedEventHandler ActionClick 
    { 
     add { this.AddHandler(ActionClickEvent, value); } 
     remove { this.RemoveHandler(ActionClickEvent, value); } 
    } 

    public DummyControl() 
    { 
     this.InitializeComponent(); 
    } 

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
     this.RaiseEvent(new RoutedEventArgs(ActionClickEvent,this)); 
    } 
} 

を。しかし、イベントがトリガーされると、渡された項目は常にnullです。ボタンで同じことをしようとすると、すべて正常に動作します。

<Cstm:DummyControl cal:Message.Attach="[Event ActionClick] = [Action Test(dataGrid.SelectedItem)]"/> 

これは既知のバグかどうかわかりません。 :\

答えて

0

Caliburn.Microは、イベント定義でカスタムルーティングイベントをサポートしていません。 カスタムルーティングイベントhttps://stackoverflow.com/a/8471269/6346570と連携させるには、このawnserを参照してください。

Additionnaly、あなたは、XAMLでのイベントを参照するために、名前空間と所有者クラスとの完全な名前を使用する必要があります。それはCstm:DummyControl.ActionClick

関連する問題