Как привязать столбцы и строки в DataGrid в WPF?

Как привязывать 2D структуры (вроде таблиц сравнения) в DataGrid с динамическим обновлением привязок?
Например есть класс Alternative:
public class Alternative : ObservableObject
{
    private string _alternativeName = "";
    public string AlternativeName
    {
        get { return _alternativeName; }
        set
        {
            _alternativeName = value;
            RaisePropertyChanged();
        }
    }

    private ObservableCollection<Alternative> _childAlternatives = new ObservableCollection<Feature>();;
    public ObservableCollection<Alternative> ChildAlternatives
    {
        get { return _childAlternatives; }
        set
        {
            _childAlternatives = value;
            RaisePropertyChanged();
        }
    }

    private MappedValueCollection _childComparison = new MappedValueCollection();
    public MappedValueCollection ChildComparison
    {
        get{ return _childComparison; }
        set
        {
            _childComparison = value;
            RaisePropertyChanged();
        }
    }
}

И нужно получить таблицу, вроде этой: OiVIUPl.png

Ближайшее найденное решение: www.codeproject.com/Tips/676530/How-to-Add-Columns...

Сценарий использования предполагает что пользователь будет выбирать Alternative из TreeView, и выбранный экземпляр будет сохранен в полеSelectedAlternative, и его ChildComparison автоматически отрисуется в DataGrid. Но код из ссылки с codeproject'a некорректно переключается между MappedValueCollection: каждый раз при выборе очередной ветки всё содержимое её поля ChildComparison копируется в новую выбранную ветку, и выглядит это так:

Дерево альтернатив - Bn1Byo3.png

И содержание RootNode.ChildComparison в отладчике - gTWF6Rs.png
  • Вопрос задан
  • 1254 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы