私はViewModelにオブジェクトとコマンドのコレクションを持っています。ItemsControl.ItemTemplateからModelプロパティを表示するためのバインド
コレクション内のオブジェクトごとにハイパーリンクを表示し、CommandParemeterとしてobjectIDを渡して、同じコマンドに各ハイパーリンクのCommandを設定します。例えば
私のUserControlのDataContextを上記のViewModelクラスに設定しました。次のようにこのユーザーコントロールのためのXAMLは次のとおりです。
<UserControl>
<ItemsControl ItemsSource="{Binding Path=MyList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<HyperlinkButton Content="{Binding Path=Description}" Command="{Binding Path=MyCommand}" CommandParameter="{Binding Path=MyClassID}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</UserControl>
ハイパーリンクコンテンツの記述は、正しく表示が、コマンドは、私はそれがMyClassのオブジェクト内でコマンドを探しているので、これはあると思い、発射されることはありませんか?
私が探しているMyClass.MyCommandではなく、UserControls DataContext.MyCommandにどのようにバインドできますか?
クリス私はFerminと同じ問題があります。私はSL 5を使用していますが、RelativeSourceバインディングは機能しませんし、あなたの答えもありません。私は、DataContextにMyCommandという名前のプロパティがないため、あなたの答えがどのように機能するかわかりません。私のViewすなわちrootには、getterにViewModelというプロパティがあります。これはreturn(MyViewModel)DataContextです。それでも動作しません。 – Sam
こんにちはSam、MyCommandは、Ferminが提供した例 - 自分のビューモデルに関するコマンドに関連しています。残念ながら、私はあなたの問題の詳細があなたを助けるほどにはありません。あなたは何をしようとしているのか、それをどうしようとしているのかという詳細と、新しい質問を始める方が良いでしょう。 –