wpf propertyGrid - PullRequest
       19

wpf propertyGrid

4 голосов
/ 02 ноября 2009

Мне нужна таблица свойств для моего приложения WPF. после многих поисков я нашел этот Я добавил сборку (exe-файл), когда я добавляю propertyGrid в мою форму, и я запускаю ее, я не вижу ее в форме. код xaml:

<Window x:Class="propertyGridTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpg="clr-namespace:Deepforest.WPF.Controls;assembly=WPGDemo"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Button x:Name="btn" Click="btn_Click" Height="35.5" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="55"></Button>
        <wpg:PropertyGrid x:Name="property" Width="100" Height="100"> </wpg:PropertyGrid>
    </Grid>
</Window>

код позади:

private void btn_Click(object sender, RoutedEventArgs e)
        {
            property.Instance = btn;
        }

, пожалуйста, помогите мне выяснить, почему его не видно

Ответы [ 4 ]

17 голосов
/ 25 октября 2011

Я знаю, что это старая запись, но в блоке есть новая PropertyGrid, и она самая функциональная и многофункциональная. Ох, и это БЕСПЛАТНО!

http://wpftoolkit.codeplex.com/

enter image description here

7 голосов
/ 02 ноября 2009

Это связано с ошибкой в ​​коде WPFPropertyGrid.

Из его атрибута ThemeInfoAttribute следует, что автор этого кода намеревался использовать общую тему, но он по ошибке поместил свои ресурсы в файл «Themes / default.xaml» вместо «Themes / generic.xaml». Из-за этого ресурсы не были автоматически загружены. Он исправил ошибку, загрузив ресурсы вручную из своего App.xaml.

Когда вы ссылались на его .exe от своего, его App.xaml не был загружен, поэтому его обход не был активирован.

Лучшее решение - исправить имя файла в исходном коде на «Themes / generic.xaml». Если это невозможно, вторым лучшим решением является загрузка ресурсов из вашего App.xaml вручную:

  <Application.Resources>

    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/WPGDemo;Component/Themes/Default.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

  </Application.Resources>

Или, если хотите, вы можете поместить это в тег в своем окне.

Обратите внимание, что в приведенном выше XAML предполагается, что будут использованы другие ресурсы, поэтому потребуется объединение. Если нет, вы можете пропустить шаги по созданию отдельного словаря и слиянию, а вместо этого просто установить словарь WPGDemo в качестве словаря вашего приложения или окна.

Хорошего дня!

1 голос
/ 22 октября 2015

Для тех, кто заинтересован, я начал простой, но, надеюсь, полезный, бесплатный проект с открытым исходным кодом PropertyGrid для WPF.

Источник доступен здесь: https://github.com/SoftFluent/SoftFluent.Windows, здесь также есть пакет nuget: https://www.nuget.org/packages/SoftFluent.Windows.

Он не имеет зависимостей, но требует .NET 4, поскольку использует WPF .NET 4 Класс DataGrid .

0 голосов
/ 02 ноября 2009

Вы читали документацию на странице загрузки?

Страница загрузки таблицы свойств WPF

Кажется, что вы должны ссылаться на свойство, которое хотите отредактировать, например, вот так:

<wpg:PropertyGrid Width="550" Height="550" Instance="{Binding ElementName=button}" />
<Button x:Name="button" Content="Click" />
...