【问题标题】:WPF ListView Items Add executing but not showingWPF ListView 项目添加执行但不显示
【发布时间】:2017-10-29 11:32:09
【问题描述】:

我正在尝试填充我的列表视图,这基本上是 2 个文件夹之间的比较。 我正在使用 WPF 列表视图:

XAML:

        <ListView x:Name="listView" Margin="0,39,0,0">
           <ListView.View>
                   <GridView x:Name="gridView"/>               
           </ListView.View>
        </ListView>

主窗口:

private void compare_Click(object sender, RoutedEventArgs e)
        {   
            .
            .
            .
            ListHelper listHelper = new ListHelper(listView, gridView);
            CompareResults = results.CoalescedResults();
            listHelper.AddItems(CompareResults);
        }

ListHelper 类

class ListHelper
    {
        public ListView listView { get; set; }
        public GridView gridView { get; set; }

        public ListHelper (ListView list, GridView grid)
        {
            this.listView = list;
            this.gridView = grid;
            listView.View = gridView;
            InitializeList();
        }

        public void InitializeList()
        {
            listView.Items.Clear();
            // Add columns
            addColumns("File/Folder Name");
            addColumns("Left Folder");
            addColumns("Right Folder");
            addColumns("Match");
        }

       public void addColumns(string colName)
        {
            gridView.Columns.Add(new GridViewColumn
            {
                Header = colName,
                DisplayMemberBinding = new Binding(colName),
                Width = 30
            });
        }

        public void AddItems(List<CompareResult> compareResults)
        {
            foreach (var item in compareResults)
            {
                ListDataRow row = new ListDataRow()
                {
                    TypeName = item.GetFileOrFolderName(),
                    LeftFolder = item.LeftFilePath != string.Empty ? Path.GetDirectoryName(item.LeftFilePath) : string.Empty,
                    RightFolder = item.RightFilePath != string.Empty ? Path.GetDirectoryName(item.RightFilePath) : string.Empty,
                    MatchStatus = "MATCH STATUS TEMP"
                };
                listView.Items.Add(row);
            }
        }

列表数据行

public class ListDataRow
    {
        public string TypeName { get; set; }
        public string LeftFolder { get; set; }
        public string RightFolder { get; set; }
        public string MatchStatus { get; set; }
    }

现在在添加断点时,我可以看到在 listView 添加项目调用中插入的有效数据.. 但在执行时,只有列可见,没有数据项。

【问题讨论】:

    标签: c# wpf xaml listview gridview


    【解决方案1】:

    谢谢大家,

    我发现了错误。 请将列名与对象匹配(上例中为 ListDataRow)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      相关资源
      最近更新 更多