Я работаю над инструментом перевода и поэтому хочу отобразить (и отредактировать) данные перевода в моей БД.Но теперь я уже застрял с отображением данных.
Я использую 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();
}
}
}