Загрузите столбец таблицы данных в соответствии с предпочтениями пользователя в WPF
Кто-Нибудь Может Мне Помочь? Я хочу загрузить столбец в DataGrid Dymanically в соответствии с предпочтениями пользователя. Пользователь может указать порядок столбцов в текстовом файле. Затем в соответствии с этим мы показали столбец в таблице данных.
Моя таблица данных имеет некоторый контроль над столбцом, например выпадающий список, текстовое поле, флажок,
Я добавил свой пример кода, он работает нормально, но в моем требовании я должен загрузить столбец таблицы данных в соответствии с предпочтениями пользователя (не жестко закодированный, как я использую в настоящее время).мы можем использовать текстовый файл для настройки столбца, заголовок таблицы данных должен отображаться в соответствии с настройкой столбца в текстовом файле.
<datagrid grid.row="1" ="" grid.column="0" grid.columnspan="3" margin="0,4,0,0" padding="0" horizontalalignment="Stretch" verticalalignment="Stretch" autogeneratecolumns="False" canuseraddrows="False" cellstyle="{StaticResource MetroDataGridCell}" columnheaderstyle="{StaticResource DefaultDataGridColumnHeader}" itemssource="{Binding SelectedContact.Recipients, Mode=TwoWay}" rowheaderstyle="{StaticResource MetroDataGridRowHeader}" rowstyle="{StaticResource MetroDataGridRow}" scrollviewer.cancontentscroll="false" scrollviewer.horizontalscrollbarvisibility="Auto" scrollviewer.verticalscrollbarvisibility="Auto"> <datagrid.columns> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.IsDeleted}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <checkbox horizontalalignment="Center" ischecked="{Binding IsDeleted, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.WhatToSend}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <combobox itemssource="{Binding DataContext.WhatToSendTypes, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" ="" selectedvalue="{Binding WhatToSendInformationKey, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" selectedvaluepath="Identifier"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.OnlyIfSender}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <checkbox horizontalalignment="Center" ischecked="{Binding IsApplicableOnlyIfContactSender, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.HowToSend}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <combobox itemssource="{Binding DataContext.HowToSendTypes, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" ="" selectedindex="0" selectedvalue="{Binding HowToSendInformationKey, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" selectedvaluepath="Identifier"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.ClientCode}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <textbox isreadonly="True" text="{Binding Path=ClientCode, Mode=TwoWay}"> DataGridTemplateColumn Header="{x:Static infrastructureLayer:Translations.ForAnotherClient}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <textbox isreadonly="True" text="{Binding Path=InternalName, Mode=TwoWay}"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.Language}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <combobox itemssource="{Binding DataContext.ReceipientLanguages, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" ="" selectedindex="0" selectedvalue="{Binding LanguageKey, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" selectedvaluepath="Identifier"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.NameDisplay}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <checkbox horizontalalignment="Center" ischecked="{Binding IsNameDisplay, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <datagridtemplatecolumn header="{x:Static infrastructureLayer:Translations.AddressDisplay}"> <datagridtemplatecolumn.celltemplate> <datatemplate> <checkbox horizontalalignment="Center" ischecked="{Binding IsAddressDisplay, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
Что я уже пробовал:
Пожалуйста, помогите мне в этом. Я не понимаю, как этого добиться
Gerry Schmitz
Загрузите все столбцы, а затем "спрячьте" те, которые им не нужны.
Maciej Los
Коротко И По Существу!