私はWPf、MVVMが初めてで、これがstackoverflowでの最初の質問です。私は自分の問題に取り掛かり、それから私がそれについてこれまでに発見したことを話し続けます.
ビューには、ProjectId、Name、Description、および IsFavourite(bool) を持つ ProjectList というリストにバインドされたリストボックスがあります。項目テンプレート内に、チェックボックスを指定しました。
チェックボックスがチェックされたら、ここまで正常に機能しているコマンドを実行することになっています。しかし、問題は、ProjectId をコマンド パラメーターとして送信する必要があることです。私はここで失敗しています。
このリンクから datacontextspy を使用してみました。Command と CommandParameter の異なる Datacontext
ここでは、チェックボックスがオンになっているアイテムの ProjectId ではなく、Viewmodel のデータコンテキストを取得できます。
これが私の.xamlコードです。
<ListBox Name="lstProjects" ItemsSource="{Binding ProjectList}" HorizontalAlignment="Stretch" SelectedItem="{Binding SelectedProject}">
<ListBox.Resources>
<local:DataContextSpy x:Key="spy"/>
</ListBox.Resources>
<TextBlock Grid.Column="1" Grid.Row="1" Grid.RowSpan="3"
Text="{Binding ProjectDescription}" FontSize="10" TextWrapping="Wrap" />
<CheckBox Name="chkFavourites" Grid.Column="1" Grid.Row="1" Content="Favoutires"
CommandParameter="{Binding Path= DataContext,Source={StaticResource spy}}"
Command="{Binding Path=IsSelected}" DataContext="{Binding DataContext,
RelativeSource={RelativeSource FindAncestor, AncestorType=ListBox}}">
</CheckBox>
</ListBox>
これについて私を助けることができますか。ここで詳細が不足している場合はお知らせください。
前もってありがとう、プラシャント