У меня есть класс с именем DelimitedCollection, который наследуется от ObservableCollection типа Row.Row - это еще один класс, который я определил.На практике Row - это просто строка [], которая имеет несколько простых действий (вставка, удаление, получение и т. Д.).Таким образом, на практике моя коллекция DelimitedCollection должна вести себя как двумерная таблица с фиксированным числом столбцов и неопределенным числом строк.В конце я хочу использовать DelimitedCollection (мой класс) в качестве ItemSource для wpf DataGrid.Прямо сейчас DataGrid обрабатывает каждую строку как 1 столбец, потому что не знает, как обрабатывать класс как строку [].
Если я пытаюсь использовать полиморфизм, я получаю сообщение об ошибке, указывающее, что класс не может быть неявно преобразован в строку [].Я искал функцию переопределения, но ничего не нашел.
Row Class:
public string[] Items { get; private set; }
public Row()
{
Items = null;
}
public Row(string[] columns)
{
Items = columns;
}
public string Get(int index)
{
if (index < Items.Length)
{
return Items[index];
}
else return null;
}
public void Insert(string value, int index)
{
if (index < Items.Length)
{
Items[index] = value;
}
}
public void Remove(int index)
{
if (index < Items.Length)
{
Items[index] = null;
}
}
public override string ToString()
{
string ret = "";
for (int i = 0; i < Items.Length; i++) {
if (i == 0)
{
if (Items[i] == null) ret += "NILL";
else ret += Items[i];
}
else
{
if (Items[i] == null) ret += ", NILL";
else ret += ", " + Items[i];
}
}
return ret;
}
}
Есть ли способ указать полиморфное поведение для класса при сохранении его функциональности?Т.е. я хочу, чтобы DataGrid понимал, как читать ObservableCollection (типа Row) как ObservableCollection (типа string []) без необходимости предоставления отдельной ObservableCollection (типа string []).Я хочу сам определить это поведение, если это возможно.