簡體   English   中英

帶有Caliburn.micro的動態DataGrid列

[英]Dynamic DataGrid columns with Caliburn.micro

我正在使用翻譯工具,因此我想在數據庫中顯示(和編輯)翻譯數據。 但是現在我已經被數據顯示所困擾。

我正在使用Caliburn.micro作為框架。

數據在List<List<string>>由后端傳遞到前端,其中“外部”列表表示不同的短語,內部列表中的一行一行,第一列為原始文本,每一列為譯文每種語言。 語言表示在附加列表中(即,從第一個表開始的行是car|Auto|voiture ,語言表示是de-DE|fr-FR 。源語言是固定的。)

現在的問題是,當我將列表打包在IObservableCollection<List<string>> ,datagrid僅顯示兩列:Capacity和Count。 不幸的是,由於語言不是固定的,我無法將所有數據放在固定的對象中,這意味着我可以擁有30種甚至100種語言。

有誰知道我該怎么做?

風景:

<UserControl x:Class="TranslationTool.EditDatabaseView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:TranslationTool"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <DataGrid ItemsSource="{Binding TranslationData}">

        </DataGrid>
    </Grid>
</UserControl>

視圖模型:

class EditDatabaseViewModel : Screen
{
    private IObservableCollection<List<string>> _translationData;

    public EditDatabaseViewModel()
    {
         TranslationData = new BindableCollection<List<string>>(DataStore.DB.GetTranslationsGrid());
    }

    public IObservableCollection<List<string>> TranslationData
    {
        get
        {
            return _translationData;
        }
        set
        {
            _translationData = value;
            NotifyOfPropertyChange();
        }
    }
}

就像@ mm8寫道:將DataTable綁定到DataGrid就像一個魅力!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM