C# 列表<&燃气轮机;启动时在Gridview中创建列,但Dictionary<&燃气轮机;不';T(WPF)
将列表设置为Gridview(WPF)的itemssource时,将在应用程序启动时创建列 请参见示例代码,列表为itemssource。在不向列表中添加任何对象的情况下运行程序时,这将正确生成列:“文件”、“持续时间”和“状态”C# 列表<&燃气轮机;启动时在Gridview中创建列,但Dictionary<&燃气轮机;不';T(WPF),c#,wpf,list,gridview,dictionary,C#,Wpf,List,Gridview,Dictionary,将列表设置为Gridview(WPF)的itemssource时,将在应用程序启动时创建列 请参见示例代码,列表为itemssource。在不向列表中添加任何对象的情况下运行程序时,这将正确生成列:“文件”、“持续时间”和“状态” public MainWindow() { InitializeComponent(); DataGrid.ItemsSource = LoadFiles(); } public cla
public MainWindow()
{
InitializeComponent();
DataGrid.ItemsSource = LoadFiles();
}
public class Files
{
public string File { get; set; }
public string Duration { get; set; }
public string Status { get; set; }
}
List<Files> files = new List<Files>();
private List<Files> LoadFiles()
{
return files;
}
public主窗口()
{
初始化组件();
DataGrid.ItemsSource=LoadFiles();
}
公共类文件
{
公共字符串文件{get;set;}
公共字符串持续时间{get;set;}
公共字符串状态{get;set;}
}
列表文件=新列表();
私有列表加载文件()
{
归还文件;
}
现在我重写了代码,用字典类型绑定GridView,因为我需要存储值/键对。但在加载应用程序时,不会生成列。只有在使用内容填充字典后,才会生成列:
public MainWindow()
{
InitializeComponent();
DataGrid.ItemsSource = LoadFile();
}
public class Files
{
public string File { get; set; }
public string Duration { get; set; }
public string Status { get; set; }
}
Dictionary<Files, string> files = new Dictionary<Files, string>();
private Dictionary<Files, string> LoadFiles()
{
return files;
}
public主窗口()
{
初始化组件();
DataGrid.ItemsSource=LoadFile();
}
公共类文件
{
公共字符串文件{get;set;}
公共字符串持续时间{get;set;}
公共字符串状态{get;set;}
}
字典文件=新字典();
专用字典加载文件()
{
归还文件;
}
我希望在字典为空时创建列。有什么建议吗?使用字典,并更改LoadFiles()以返回列表y,最终返回files.Keys.ToList()?您可以将DataGrid?的XAML代码放在代码的上半部分,没有未初始化的内容。但在下一个示例中,您正在初始化字典,但它既不初始化文件也不初始化字符串()。因此,我认为只有在加载前为文件和字符串添加1个值,才能生成列。您可以在添加实际值时删除它