MVVMのRelayCommandを使用してアクションをXAMLにバインドすることに成功しましたが、ItemsControlに小さな問題があります。
<ItemsControl ItemsSource="{Binding Devices}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Width="100" Margin="4" >
<Button Command="{Binding Path=SelectDeviceCommand}" >
<Grid>
<Image Source="img_small.png"></Image>
<Image Source="{Binding Path=Logo}" />
</Grid>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
私のビューモデルでは:
public RelayCommand SelectDeviceCommand { get; set; }
private ObservableCollection<Device> Devices;
Devices = CreateListOfDevices();
private void InitializeCommands()
{
SelectDeviceCommand = new RelayCommand((s) => MessageBox.Show(s.ToString()));
}
そのアイテムにバインドされているオブジェクトを受け取るために、ビューモデルでSelectDeviceCommandを定義するにはどうすればよいですか?
SelectDeviceCommandが呼び出されていません...(ただし、デバイスをミニビューモデルにしてSelectDeviceCommandを実装する必要があるためだと思いますが、それは正しいですか?)