0

CM がそのままではサポートしていないと思われる添付イベントのアクションを作成しようとしています。

この質問/回答は、これを行う方法を示しています

caliburn micro Message.Attach で添付イベントを使用する

ただし、長い CM ActionMessage 構文を使用する必要がありますが、これを実行しようとすると、「ActionMessage が XML 名前空間に存在しません」というメッセージが表示されます。ここで、blah は CM 名前空間です。

すべての例は、この構文も示しています。現時点では、DataContext を ViewModel 型にキャストし、適切なメソッドを呼び出すコードをビューに挿入しました (ただし、ビューを VM に結合し、残りの部分と矛盾するため、このアプローチは好きではありません)。アプリ)

ActionMessage が表示されない理由を知っている人はいますか?

例えば

<i:Interaction.Triggers> 
                <Helpers:RoutedEventTrigger RoutedEvent="Helpers:DataChanging.Changing"> 
                    <!-- this line throws the error -->
                    <cal:ActionMessage MethodName="SelectedDataChanged"> 
                        <cal:Parameter Value="$eventargs" /> 
                    </cal:ActionMessage> 
                </Helpers:RoutedEventTrigger> 
 </i:Interaction.Triggers> 

私は SL5 と CM の SL5 アセンブリを使用していますが、喜びはありません...

興味深いことに、「ActionMessage」を他の場所で使用しようとすると、正しく解決されるように見えますが、もちろん、必要な場所以外ではあまり役に立ちません!

アップデート:

これはビューの名前空間の定義です

xmlns:cal="http://www.caliburnproject.org"

実際のアセンブリ修飾名前空間と他の組み合わせを試しましたが、すべて同じ問題が発生しました

4

2 に答える 2

1

これまで ActionMessage 構文を使用する必要はありませんでしたが、コントロールにアタッチしようとしているイベントがある限り、次の構文を試してみました。

<Button Content="Remove" cal:Message.Attach="[Event Click] = [Action Remove($dataContext)]" />

さまざまなコントロールで問題なく使用できました。

http://devlicio.us/blogs/rob_eisenberg/archive/2010/07/17/caliburn-micro-soup-to-nuts-pt-3-all-about-actions.aspx

于 2012-09-11T02:38:51.150 に答える