本文介绍了ListViewItem与CheckBox IsChecked绑定到ViewModel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ListView与DataTemplate显示每个ListViewItem一个复选框。

I have a ListView with a DataTemplate for displaying for each ListViewItem a Checkbox.

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

ItemsSource(TableNames)在ViewModel中如下:

The ItemsSource ("TableNames") is deklared in the ViewModel like this:

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;
    }
}



如何将IsChecked从复选框绑定到Item.IsSelected属性?

How can I bind the IsChecked from the Checkbox to the Item.IsSelected property?

我的代码不起作用。

推荐答案

p>尝试此操作

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

这篇关于ListViewItem与CheckBox IsChecked绑定到ViewModel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 05:41