![](/img/trans.png)
[英]Binding list<string> in columns of datagrid with caliburn.micro
[英]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.