Проблема привязки wpf ViewModel

Я пытался научить себя WPF с помощью caliburn. В основном все идет нормально, но у меня есть одна проблема, которую я не могу понять. Я получил его вчера и попытался исправить, я вернулся к нему сегодня, и спустя много времени у меня ничего не получилось. Если у кого-то есть идея, что я сделал неправильно, это было бы здорово!

На мой взгляд, ошибка заключается в том, что я определяю свой контекст данных:

Имя «TranslatorViewModel» не существует в пространстве имен «clr-namespace:Translator.ViewModels».

Мой вид:

 <Window x:Class="Translator.Views.TranslatorView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:model="clr-namespace:Translator.ViewModels"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d"
    d:DataContext="{x:Type model:TranslatorViewModel}"
    Title="Translator" Height="232.895" Width="1030.263">

Моя модель просмотра:

 using Caliburn.Micro;

 namespace Translator.ViewModels
 {
      public class TranslatorViewModel : PropertyChangedBase
      {
      }
 }

Мой загрузчик:

using Translator.ViewModels;
using Caliburn.Micro;

namespace Translator
{
    public class AppBootstrapper : BootstrapperBase
    {
        public AppBootstrapper()
        {
             Initialize();
        }

        protected override void OnStartup(object sender,   System.Windows.StartupEventArgs e)
        {
             DisplayRootViewFor<TranslatorViewModel>();
        }
    }
} 

Заранее спасибо!


person user3161050    schedule 12.07.2014    source источник


Ответы (1)


Чтобы установить DataContext во время разработки, необходимо использовать расширение разметки d:DesignInstance. Посмотрите, работает ли это для вас:

d:DataContext="{d:DesignInstance Type=model:TranslatorViewModel}"
person Rohit Vats    schedule 12.07.2014
comment
Спасибо за ответ, но все равно получаю ту же ошибку :-( - person user3161050; 12.07.2014
comment
Это только ошибка дизайнера ИЛИ ошибка времени компиляции? Как правило, конструктор не может выбрать значения, если вы его не скомпилируете. - person Rohit Vats; 12.07.2014
comment
Я думаю, что это ошибка времени компиляции. Если я очищаю решение и пересобираю его, ошибка возвращается - person user3161050; 12.07.2014
comment
АГА! Я нашел ответ... когда я перестроил его, я получил ошибку в XAML с моим App.Xaml, я неправильно сослался на пространство имен своего решения. Как только я исправил эту ошибку, другая ошибка (единственная ошибка, которую я получил вчера) исчезла, и я могу собрать и запустить свое решение! Большое спасибо за вашу помощь - person user3161050; 12.07.2014
comment
Здорово. Это сработало для вас, наконец. Но даже если вы хотите выполнить привязку во время разработки, вы должны использовать d:DesignInstance, а не x:Type. - person Rohit Vats; 12.07.2014