WPF: таблица данных для класса - PullRequest
0 голосов
/ 21 февраля 2009

У меня есть этот XAML:

<UserControl x:Class="M_Cubed.Controls.TagEditor"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:classes="clr-namespace:M_Cubed.Classes">
    <UserControl.Resources>
        <DataTemplate DataType="{x:Type classes:TagEditorPic}">
            <ComboBox DataContext="{StaticResource PicTypes}"
                ItemsSource="{Binding}"/>
        </DataTemplate>
    </UserControl.Resources>
</UserControl>

У меня есть этот C #:

namespace M_Cubed.Classes
{
     public class TagEditorPic : INotifyPropertyChanged
     {
          public TagEditorPic() { }
     }
}

И я получаю эту ошибку:

Ссылка на тип не может найти открытый тип с именем TagEditorPic.

Есть предложения?

Ответы [ 4 ]

1 голос
/ 21 февраля 2009

Это потому, что вы не реализовали INotifyPropertyChanged. Если вы реализуете это, то ваш элемент управления скомпилируется.

Он не находит элемент управления, поскольку не может скомпилировать класс TagEditorPic. Поскольку этот класс не является жизнеспособным, синтаксический анализатор XAML не знает, что делать.

0 голосов
/ 23 февраля 2009

класс TagEditorPic в той же сборке? Иначе вам нужно указать это так:

xmlns:classes="clr-namespace:M_Cubed.Classes;assembly=myassembly"
0 голосов
/ 21 февраля 2009

Я решил, что просто установлю атрибут x: Key на табличку данных и просто свяжу свойства шаблона и далее со StaticResource x: Key. Со мной все работает.

0 голосов
/ 21 февраля 2009

В зависимости от вашей версии Visual Studio вы можете получать устаревшие сборки.

Попробуйте запустить Build -> Clean Solution, затем перестроить Solution.

Если это не сработает, попробуйте перезапустить Visual Studio.

...