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; }
}
}