listview中的wpf复选框绑定

本文关键字:绑定 复选框 wpf 中的 listview | 更新日期: 2023-09-27 18:24:49

我有两个由实体框架生成的类,如下所示。我的要求取决于JobEntity类中的SystemEntity_ID,我想在列表视图中绑定复选框的IsChecked属性。问题是现在所有的复选框都被选中了。。。请帮忙。。

public partial class JobEntity
{
    public int JobEntity_ID { get; set; }
    public int Job_ID { get; set; }
    public Nullable<int> SystemEntity_ID { get; set; }
    public string EntityMigrationStatus { get; set; }
}
public partial class sp_SelectEntities_Result
{
    public Nullable<int> Project_ID { get; set; }
    public Nullable<int> Site_ID { get; set; }
    public int SystemEntity_ID { get; set; }
    public string EntityDesc { get; set; }
}

下面是我的Viewmodel类:

public class EntityViewModel
{
    private List<sp_SelectEntities_Result> entitylist;
    private ObservableCollection<sp_SelectEntities_Result> _ObCollection;
    private EntityDbContext db;
    List<int> Selectedvalues = new List<int>();
    public EntityViewModel()
    {
        db = new EntityDbContext();
        entitylist = db.sp_SelectEntities().ToList();
        convert();
    }
    public void convert()
    {
        _ObCollection = new ObservableCollection<sp_SelectEntities_Result>(entitylist);
    }
    public ObservableCollection<sp_SelectEntities_Result> obcollection
    {
        get { return _ObCollection; }
        set { _ObCollection = value; }
    }
}

我的视图,即主窗口。

<ListView x:Name="lstentities" ItemsSource="{Binding obcollection}" Height="250" VerticalAlignment="Top">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Selected">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox x:Name="chk" IsChecked="{Binding SystemEntity_ID}" />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn DisplayMemberBinding="{Binding EntityDesc}" Header="Entity" />
        </GridView>
    </ListView.View>
</ListView>

以及在主窗口.cs 中

public MainWindow()
{
    InitializeComponent();
    EntityViewModel ev = new EntityViewModel();
    this.DataContext = ev;
}

listview中的wpf复选框绑定

问题是您试图将可为null的int绑定到布尔属性。如果你想这样的话。您需要一个转换器或数据触发器。

由于我不知道什么值会选中复选框,什么值会取消复选框,所以我可以为您编写任何代码。

希望这能有所帮助。

亲切问候