Пользовательский тип данных в DataTemplate ломает конструктор WPF - PullRequest
1 голос
/ 18 апреля 2010

Почему строка DataTemplate ломает конструктор WPF в Visual Studio 2008?

Программа компилируется и работает правильно. DataTemplate применяется как следует. Однако весь блок кода DataTemplate подчеркнут красным, и когда я просто «строю» программу без запуска, я получаю ошибку «Ссылка на тип не может найти открытый тип с именем« Символ »»

Почему он не может найти его в конструкторе, а программа правильно применяет шаблон?

<UserControl x:Class="WPF_Tests.Tests.TwoCollecViews.TwoViews"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:DetailsPane="clr-namespace:WPF_Tests.Tests.DetailsPane" 
    >
   <UserControl.Resources>

      <DataTemplate DataType="{x:Type DetailsPane:Character}">
         <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Name}"></TextBlock>
         </StackPanel>
      </DataTemplate>

   </UserControl.Resources>

   <Grid>
      <ListBox ItemsSource="{Binding Path=Characters}"  />
   </Grid>
</UserControl>

РЕДАКТИРОВАТЬ: мне говорят, что это может быть ошибка в Visual Studio 2008, так как она работала правильно в 2010 году. Вы можете скачать код здесь: http://www.mediafire.com/?z1myytvwm4n - конструктор файла Test / TwoCollec xaml сломается с этим кодом.

1 Ответ

2 голосов
/ 18 апреля 2010

Да, это ошибка в Visual Studio 2008. Вы можете обойти ее, изменив имя сборки (щелкните правой кнопкой мыши на Project "WPF Tests" / Properties) с "WPF Tests" на "WPF_Tests". Я попробовал это с вашим проектом, и он, кажется, работает (после перезапуска Visual Studio).

(Кредит для этого обходного пути: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/21d72064-354c-432e-8227-ba4e21f4089f)

...