2017-10-29 9 views
0

基本的に2つのフォルダの比較である私のリストビューを作成しようとしています。 は、私はWPFのリストビューを使用しています:WPF ListView Items実行を追加しますが表示しません

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

ListDataRow

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

今すぐブレークポイントを追加すると、listView Add items callで有効なデータが挿入されていることがわかります。 実行時には、列のみが表示され、データ項目は表示されません。

答えて

0

ありがとうございました。

私はエラーを見つけました。 オブジェクトの列名と一致してください(上の例ではListDataRow)

関連する問題