C# 列表视图显示成员绑定显示“错误”值

本文关键字:显示 错误 成员 列表 视图 绑定 | 更新日期: 2023-09-27 18:36:17

在我的WPF应用程序中,我有一个列表视图,里面有几列,一列里面有一个复选框。
xaml 如下所示:

<ListView x:Name="listviewImported">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Check" Width="50">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
 /*This line may be the prob.*/     <CheckBox IsChecked="{Binding MarkedForCheck}" />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn Header="Pos." Width="75" DisplayMemberBinding="{Binding PositionAsString}" />
                        <GridViewColumn Header="Value" Width="175" DisplayMemberBinding="{Binding ImportValue}" />
                        <GridViewColumn Header="Type" Width="175" DisplayMemberBinding="{Binding ImportValueTypeDescription}" />
                    </GridView>
                </ListView.View>
            </ListView>

项源分配如下:

        listviewImported.ItemsSource = _catalog.ImportedList;

_catalog中的导入列表的类型为 ImportedElem:

    private List<ImportedElem> _importedList = new List<ImportedElem>();

这是 ImportedElem 类:

public class ImportedElem : BaseElem {
        public ImportedElem(int Position, string ImportValue) : base(Position, ImportValue) {
        }
        //MARKED FOR CHECK
        public bool MarkedForCheck = true;
    }

这就是问题所在:
当我将导入的Elem添加到列表中时,列表视图将更新,并且"Pos.","值"和"类型"列包含正确的数据。但是,带有复选框的列("检查")在将其添加到列表后始终显示未选中的复选框。数据是正确的,列只是显示错误的数据。我可以修改列表中的复选框,它将更新数据,这很好。但是列表应该在将元素添加到列表后立即包含正确的数据,而它没有这样做。

知道为什么 3 列是正确的而复选框不起作用会非常有趣。

C# 列表视图显示成员绑定显示“错误”值

public bool MarkedForCheck = true;更改为public bool MarkedForCheck {get;set;}