0

コンテキストメニューを作成しようとしています。コンテキストメニューを作成するためにC#に変換する方法がわかりませんが、XAMLにはすでに機能するボタンがあります。DataSourceとDataContextProxyがどのように機能するのかわかりません。これが、私が使用しているコードの一部です。

<sr:Button Text="Deactivate" Size="Medium" SmallImage="/Fsc.Feenics.Clients.Silverlight2;component/Images/16/deactivate.png" Command="{Binding Path=DataSource.DeactivateCardCommand, Source={StaticResource DataContextProxy}}" CommandParameter="{Binding}" Visibility="{Binding Active, Converter={StaticResource VisibleIfTrue}}" />

これは、コンテキストメニュー用にC#に変換する試みです。

  contextMenu.Items.Add(new MenuItem { Header = "Deactivate", Command = new RelayCommand<Guid>((x) => localContext.DeactivateCard(x)), CommandParameter = objectInfo.Id });

DataSource / DataContextProxyをC#のどこに配置するかわかりません。誰かが私に提案をしたり、それがどのように機能するかを説明したりできれば、それは非常に魅力的です。

4

1 に答える 1

0

xamlを理解しているかどうかわからないので、最初から説明します...

ボタンコマンドは、ax:key"DataConextProxy"を持つクラスStaticResourceオブジェクトにバインドしています。

そのオブジェクトは、プロパティを公開するクラスです:DataSource

そして、そのDataSourceオブジェクトは、コマンドを公開するクラスです:DeactivateCardCommand

DataContextProxyの名前から、これについてだと思います

基本的には、コマンドで同じバインディング、同じバインディングパスを使用してメニュー項目を作成するだけで、問題ありません...

于 2012-11-19T16:14:59.760 に答える