Как отображать только активные элементы в раскрывающемся списке, продолжая отображать неактивные элементы, когда раскрывающийся список закрыт - PullRequest
0 голосов
/ 22 июня 2019

У меня есть неприметное комбинированное окно в сетке данных:

<DataGridComboBoxColumn
    DisplayMemberPath="Disposition"
    Header="Disposition"
    ItemsSource="{Binding Data.Dispositions, Source={StaticResource proxy}}"
    SelectedValueBinding="{Binding DispositionID}"
    SelectedValuePath="DispositionID" />

Я хотел бы отобразить все возможные описания в сетке данных, ограничивая раскрывающийся список, который открывается, когда пользователь нажимает на элемент управления, только теми элементами, чье "активное" поле имеет значение true.

Как бы я поступил так?

Data.Dispositions содержит коллекцию следующих DTO:

public class Disposition
{
    public int DispositionID { get; set; }
    public string Disposition { get; set; }
    public bool Active { get; set; }
}

Я просмотрел этот пост , но он не будет работать в сетке данных. ItemsSource придется каким-то образом динамически манипулировать.

Примечание: StaticResource proxy выглядит так:

<DataGrid.Resources>
    <!--  http://www.thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext-is-not-inherited/  -->
    <helpers:BindingProxy x:Key="proxy" Data="{Binding}" />
</DataGrid.Resources>
...