Hallo zusamman,
habe ein ListView welche ein(paar) CheckBox enthält.
Wenn ich als CommandParameter SelectedItem von ListView schicke,
bekomme ich zwar SelectedItem aber Clicked-CheckBox gehört zu einer anderen Item.
d.h ohne Selection zu ändern kann man andere checkboxes von anderen Items clicken.
Wie kann ich den Row bzw die Item senden den ich eigentlich geklickt habe?
<ListView ItemsSource="{Binding CheckList}">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Left" Text="{Binding Name}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Checked?" Width="90">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.CheckedClicked}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Listview}}, Path=SelectedItem}"
IsChecked="{Binding IsChecked,Mode=TwoWay}" HorizontalAlignment="Center"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Danke Vorab
VG
Timur Tas
Hallo Tastimur,
warum bindest Du denn den CommandParameter, an das Property SelectedItem von der ListView
ein Binding auf den aktuellen Row DataContext, wäre für Dich doch eigentlich das Richtige.
So würdest Du im Parameter, auch das Objekt bekommen welches die aktuelle Zeile Repräsentiert.
CommandParameter="{Binding Path=.}"
Viele Grüße
Lars