【发布时间】: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