0
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ListBox x:Name="RootListView" ItemsSource="{Binding Ratings}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
.... Some TextBoxes with Labels are here to fill the grid .....
<Button Grid.Row="4" Grid.Column="1" Content="Delete"
Command="{Binding ElementName=RootListView, Path=DataContext.DeleteRatingCommand}"
CommandParameter="{Binding ElementName=RootListView, Path=SelectedItem}">
</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
どこRatings
は次のとおりです。WPFのSelectedItemは、コマンド・パラメータとして渡された私の見解モデルの値を返さない
public ObservableCollection<RatingModel> Ratings;
そしてDeleteRatingCommand
はICommand
オブジェクトです。
このビューに表示されているレーティング(情報を含むグリッド)はすべて、削除ボタンがあります。対応する評価のボタンが押されると、SelectedItem
プロパティを持つビューモデルに評価オブジェクトを送信したいと思います。バインドされたメソッドが呼び出されたにもかかわらず、SelectedItemパラメーター、つまりnull
の値を渡したものはありません。この場合、SelectedItem
を正しく使用して、評価を削除するビューモデルに情報を送信するにはどうすればよいですか?他の可能性はありますか?このアプローチが正しいかどうかはわかりません。
これは私が思いついたものです。あなたはそれを 'CommandParameter =" {Binding} "' – yoger