PropertyGrid ValueEditor для имени файла

У меня есть следующее определение правила:

<Rule ...>
  <... />
  <StringProperty Subtype="file" ...>
  <StringProperty.ValueEditors>
    <ValueEditor EditorType="DefaultStringPropertyEditor" DisplayName="&lt;Edit...&gt;"/>
    <ValueEditor EditorType="DefaultFilePropertyEditor" DisplayName="&lt;Browse...&gt;"/>
  </StringProperty.ValueEditors>
  </StringProperty>
  <... />
</Rule>

Он добавляет опции "" и "" для редактирования свойства, но диалоговое окно "Обзор" запрашивает файл *.exe, когда мне нужно разрешить пользователю выбрать файл *.txt., В диалоговом окне есть поле со списком, который позволяет выбрать "Все файлы", но на самом деле это не вариант.

Я пытался найти решение, но этот бит расширяемости, похоже, недостаточно хорошо документирован.

1 ответ

Решение

Я наконец нашел способ сделать это, но только для VS2012. Помещение фрагмента метаданных с именем "Фильтры" со строкой фильтров в типичном диалоговом формате открытого файла, похоже, поможет.

Пример:

<ValueEditor EditorType="DefaultFilePropertyEditor" DisplayName="&lt;Browse...&gt;">
  <ValueEditor.Metadata>
    <NameValuePair Name="Filters" Value="Text (*.txt)|*.txt" />
  </ValueEditor.Metadata>
</ValueEditor>
Другие вопросы по тегам