2017-10-29 3 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> 

MainWindow를 :

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 항목 추가 호출에 유효한 데이터가 삽입 된 것을 볼 수 있습니다. 실행시 열만 표시되며 데이터 항목은 표시되지 않습니다.

답변

0

감사합니다.

나는 오류를 발견했습니다. 개체의 열 이름과 일치하십시오 (위의 예에서는 ListDataRow)