我正在使用翻译工具,因此我想在我的数据库中显示(和编辑)翻译数据。但是现在我已经被数据显示所困扰。
我正在使用Caliburn.micro作为框架。
数据在List<List<string>>
中由后端传递到前端,其中“外部”列表代表不同的短语,内部列表一行,第一列为原始文本,每列为每种语言的翻译。在附加列表中进行语言表示(即,从第一个表开始的行是car|Auto|voiture
,语言表示是de-DE|fr-FR
。源语言是固定的。)
现在的问题是,当我将列表打包在IObservableCollection<List<string>>
中时,数据网格仅显示两列:容量和计数。不幸的是,由于语言不是固定的,我无法将所有数据放在固定的对象中,这意味着我可以拥有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();
}
}
}
答案 0 :(得分:0)
@ mm8写道:将DataTable
绑定到DataGrid就像一种魅力!