1

CommandParameter が常に null である理由は誰にも分かりますか?

クラス TransactionViewModel には、ItemsControl に表示される TransactionCommands のコレクション プロパティがあります。項目は CommandViewModel タイプです。

TransactionBrowserViewModel にはコマンド AddJobForSelectedTransactionCommand があります。CommandViewModel のパラメータとして渡されるコマンド。

スニップを表示:

        <ItemsControl Grid.Row="4"
                      ItemsSource="{Binding TransactionCommands}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <telerik:RadButton Content="{Binding DisplayName}"
                                       CommandParameter="{Binding DataContext, RelativeSource={RelativeSource Self}}"
                                       Command="{Binding ViewModel.AddJobForSelectedTransactionCommand, ElementName=userControl}"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl> 

UserControl の分離コード:

[Export]
public partial class TransactionBrowserView : UserControl, IView<TransactionBrowserViewModel>
{       
    [ImportingConstructor]
    public TransactionBrowserView()
    {
        InitializeComponent();
    }

    [Import]
    public TransactionBrowserViewModel ViewModel
    {
        get { return (TransactionBrowserViewModel)this.DataContext; }
        set { this.DataContext = value; }
    }
}
4

3 に答える 3

1

OK、申し訳ありませんが、エラーが見つかりました。Telerik の RadButton にあります。デフォルトのボタンでシナリオをテストしました。ここでは、問題なく動作します。

于 2013-09-02T09:16:33.817 に答える
0

ComandParameterのパスに を設定しましたDataContextRadButton、どこにも何も設定していないようですDataContext

DataContextバインディング エラーに関する情報については、[出力] ウィンドウを調べてください。「オブジェクト XXX にはプロパティがありません」のようなメッセージが表示されます。

プロパティに何をバインドしようとCommandParameterしていますか?

于 2013-09-02T08:39:31.333 に答える