c# wpf listview checkbox templatebinding

c# - ListViewItem con CheckBox IsChecked vinculante para ViewModel



wpf templatebinding (2)

Tengo un ListView con DataTemplate para mostrar para cada ListViewItem una casilla de verificación.

<ListView ItemsSource="{Binding TableNames}"> <ListView.ItemTemplate> <DataTemplate> <CheckBox Content="{Binding}" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected, Mode=TwoWay}" /> </DataTemplate> </ListView.ItemTemplate> </ListView>

El ItemsSource ("TableNames") se desclasifica en el ViewModel de la siguiente manera:

private ObservableCollection<Item> _TableNames = new ObservableCollection<Item>(); public ObservableCollection<Item> TableNames { get { return _TableNames; } set { _TableNames = value; OnPropertyChanged("TableNames"); } } public class Item { public bool IsSelected { get; set; } public string Name { get; set; } public override string ToString() { return this.Name; } }

¿Cómo puedo vincular el IsChecked de la casilla de verificación a la propiedad Item.IsSelected?

Mi código no funciona


Eliminar RelativeSource

<CheckBox Content="{Binding}" IsChecked="{Binding IsSelected}" />

Dado que DataContext of ListViewItem se configurará como instancia de Item todo lo que necesita especificar es la ruta a IsSelected


Prueba esto

<DataTemplate> <CheckBox Content="{Binding Name}" IsChecked="{Binding IsSelected}" /> </DataTemplate>