Как получить DataGridTemplateColumn для работы с объектами, реализующими интерфейс IEditable <T>? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть DataGrid со столбцом DataGridComboBox, который работает нормально.Он правильно связывается со списком элементов, правильно отображает выбранный элемент, правильно выбирает элемент и правильно связывает идентификатор выбранного элемента с базовой моделью строки.

Это выглядит так:

<DataGridComboBoxColumn
    x:Name="AssetColumn"
    Width="3*"
    DisplayMemberPath="Item"
    Header="Item"
    ItemsSource="{Binding Data.AssetDescriptions, Source={StaticResource proxy}}"
    SelectedValueBinding="{Binding AssetDescriptionID}"
    SelectedValuePath="AssetDescriptionID" />

Я пытаюсь добиться того же с помощью DataGridTemplateColumn и обычного поля со списком.Мои усилия:

<DataGridTemplateColumn Header="ItemTemplate" Width="3*">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox
                DisplayMemberPath="Item"
                ItemsSource="{Binding Data.AssetDescriptions, Source={StaticResource proxy}}"
                SelectedValue="{Binding AssetDescriptionID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                SelectedValuePath="AssetDescriptionID" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

К сожалению, этот не соответствует интерфейсу IEditable<T>, который реализуют объекты Asset.Следовательно, обычные механизмы редактирования, которые вы обычно используете в DataGrid, такие как отмена, не будут работать для этого столбца.

Есть ли способ написать это так, чтобы он работал так, как он долженк интерфейсу IEditable<T>?


Примечание: Я знаю, что мне, вероятно, нужен CellEditingTemplate, чтобы заставить это работать должным образом, но я не уверен, какидти об этом.Я также могу поместить то же поле со списком в CellEditingTemplate, но я не могу понять, как заставить столбец переключаться в режим редактирования, когда он получает фокус, и если я только помещаю шаблон данных поля со списком вCellEditingTemplate, данные не отображаются в столбце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...