使用WPF Xaml在ListView / DataGrid中显示动态colums数

时间:2017-11-21 23:30:51

标签: c# wpf xaml listview datagrid

我有一个让我感到困惑的问题:我想问一下WPF(Xaml)中ListView / DataGrid中构建的动态列。我的意思是,列数不确定,可以随时间变化。例如:

public class LocalizationModel
{
    public string Key { get; set; }
    public List<LocalizationCell> Translation { get; set; }
}

public class LocalizationCell
{
    public CultureInfo Culture { get; set; }
    public string Translation { get; set; }
    public LocalizationCell(CultureInfo culture, string translation)
    {
        Culture = culture;
        Translation = translation;
    }
}

在ViewModel中我有下一个属性:

  public IEnumerable<LocalizationModel> LocalizationList
    {
        get => _localizationList;
        set => Set(ref _localizationList, value);
    }

通过这种方式,我尝试保存关键和本地价值的信息。

在我的视图上,我希望使用ListView或DataGrid显示此集合,并可以更改本地化值。我需要一些方法来使用XAML动态构建列,例如:

| Key | English | Denmark | Spanish | ...

1 个答案:

答案 0 :(得分:0)

XAML不是一种编程语言。它是标记语言,不支持动态添加列。

您可以在视图的代码隐藏中以编程方式向std::stringstream ss(checkLine); getline(ss, something, ','); getline(ss, somethingElse, ','); getline(ss, somethingElse1, ','); getline(ss, somethingElse2, ','); getline(ss, somethingElse3, ','); getline(ss, somethingElse4, ','); getline(ss, somethingElse5, ','); getline(ss, somethingElse6, ','); 添加列,也可以将DataGrid设置或绑定到您可以添加到的ItemsSource列动态。