Как скрыть пароль в gridview?

Мне нужно скрыть ячейки с паролем на datagrid символами *
Я использую подход MVVM поэтому коллекция ObservableCollection Records хранить во viewmodel.
У меня есть два варианта:
1. Применить конвертер при связывании itemsource с коллекцией, но в таком случае новая запись не скрывает пароль.
2. Создать коллекцию колонок в datagrid и, при связывании колонки с соответствующим полем класса Record, применить конвертер. Я создал одну колонку для эксперимента, новая запись теперь скрывает данные за символами, однако происходит дублирование колонок. Как это исправить я не знаю.

Прошу вашего совета, уважаемые программисты!

Пример кода datagrid с применением двух вариантов:
<!--Первый вариант-->
        <DataGrid ItemsSource="{Binding Records, Converter={StaticResource PassConverter}}" 
                  BorderThickness="0,2,0,0"
                  ColumnWidth="*" 
                  CanUserResizeColumns="False" 
                  CanUserAddRows="False" 
                  CanUserDeleteRows="False" 
                  CanUserResizeRows="False" 
                  IsReadOnly="True"
                  SelectedIndex="{Binding CurrentIndexOfRecord}">
            <DataGrid.Columns>
                <!--Второй вариант-->
                <DataGridTextColumn Header="Login" Binding="{Binding Path=Login, Converter={StaticResource FieldPassConverter}}" />
            </DataGrid.Columns>


Результат:
182fc9bc1bc4446b85d3812caa5e84a5.png
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
@dmitry_olshak Автор вопроса
-
Ответ был найдет.
Я буду использовать второй вариант. А чтобы колонки не дублировались в datagrid надо установить свойство
AutoGenerateColumns в значение False.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы