Caliburn.Micro中的WinRT 8.1设置

我正在尝试使用VS2013 RC在Caliburn.Micro WinRT 8.1应用程序中打开设置视图,但是在打开并显示以下消息时,我始终收到未处理的异常:

值不能为空。参数名称:无法解析应用清单中的VisualElement。

我可以通过以下步骤重现这些问题:

  1. 使用空白应用模板从VS2013 RC创建一个新的Windows应用商店应用。
  2. 通过NuGet添加Caliburn.Micro。
  3. 在App.xaml中,将基类更改为caliburn:CaliburnApplication(名称空间声明为xmlns:caliburn =“ using:Caliburn.Micro”)。
  4. 在App.xaml.cs中,像这样更改类(对于基于CM的设置,我遵循http://compiledexperience.com/blog/posts/settings-caliburn

代码如下:

public sealed partial class App 
{
  private WinRTContainer _container;    

  public App()
  {
      InitializeComponent();
  }

  protected override void Configure()
  {
      _container = new WinRTContainer();
      _container.RegisterWinRTServices();

      _container.PerRequest<MainViewModel>();
      _container.PerRequest<SettingsViewModel>();

      ISettingsService settings = _container.RegisterSettingsService();
      settings.RegisterCommand<SettingsViewModel>("Test settings");
  }

  protected override object GetInstance(Type service, string key)
  {
      var instance = _container.GetInstance(service, key);
      if (instance != null) return instance;
      throw new Exception("Could not locate any instances.");
  }

  protected override IEnumerable<object> GetAllInstances(Type service)
  {
      return _container.GetAllInstances(service);
  }

  protected override void BuildUp(object instance)
  {
      _container.BuildUp(instance);
  }

  protected override void PrepareViewFirst(Frame rootFrame)
  {
    _container.RegisterNavigationService(rootFrame);
  }

  protected override void OnLaunched(LaunchActivatedEventArgs args)
  {
    DisplayRootView<MainView>();
  }
}
  1. 最后,在解决方案中为Views和ViewModels创建文件夹,向其中添加所需的项:MainViewModel,SettingsViewModel,MainView,SettingsView。视图仅包含带有一些文本的TextBlock。MainViewModel派生自Screen,而SettingsViewModel派生自PropertyChangedBase。它们中没有任何相关代码。

启动应用程序时,可以看到主视图;然后打开超级按钮栏并单击设置,然后找到通往我的应用设置的标签;当我单击它时,我得到上面引用的异常。有什么提示吗?

您可以在此处找到完整的repro解决方案:http : //sdrv.ms/18GIMvB

看来新的CM版本(alpha 2)解决了这个问题,所以我在这里添加了更多信息来帮助像我这样的其他新手。这是我现在正在做的事情:

在应用程序中,Configure我有一些引导代码,例如:

...
ResourceLoader loader = ResourceLoader.GetForViewIndependentUse("Resources");
ISettingsService settings = _container.RegisterSettingsService();
settings.RegisterFlyoutCommand<ContentSettingsViewModel>(loader.GetString("SettingsContent"));

ContentSettingsViewModel是,用于过滤一些内容的视图模型。从资源获取的字符串是将出现在设置弹出窗口中的标签(请确保该字符串有一个条目,因为传递空字符串或null字符串会触发异常)。这个VM是从CM衍生Screen因为我重写OnActivate,并OnDeactivate加载和保存设置,当用户打开或驳回设置页面。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Caliburn.Micro的WinRT 8.1设置超级按钮:如何从设置中删除命令?

来自分类Dev

Caliburn.Micro中的UserControl

来自分类Dev

Caliburn.Micro中的UserControl

来自分类Dev

使用Caliburn Micro&Ninject设置依赖项注入

来自分类Dev

Caliburn Micro Go返回上一页实例WinRT

来自分类Dev

WinRT Caliburn Micro SimpleContainer:在容器中注册装饰器

来自分类Dev

caliburn.micro为什么不能在Windows Phone 8应用程序中自动创建ViewModel?

来自分类Dev

Caliburn Micro Datagrid绑定

来自分类Dev

Caliburn Micro发布/订阅

来自分类Dev

Caliburn Micro,聚焦MV

来自分类Dev

WPF-Caliburn Micro中的ScrollViewer

来自分类Dev

使用Caliburn Micro在WPF中更新DataGrid

来自分类Dev

ComboBox 中的 Caliburn.Micro Enum 绑定

来自分类Dev

Caliburn.Micro 中 ActivateItem 之后的操作

来自分类Dev

处理Caliburn Micro的静态IoC

来自分类Dev

Caliburn Micro 2 EventAggregator PublishOnBackgroundThread

来自分类Dev

Caliburn.Micro的UWP约定

来自分类Dev

用Caliburn Micro双击WPFNotifyIcon

来自分类Dev

Caliburn.Micro实现INotifyDataErrorInfo

来自分类Dev

caliburn.micro Condutor not working

来自分类Dev

使用Caliburn.Micro的动作

来自分类Dev

Caliburn.Micro 怎么写?

来自分类Dev

从另一个ViewModel设置Caliburn.Micro ControlContent

来自分类Dev

在Caliburn Micro中将属性从正在运行的线程设置为ViewModel

来自分类Dev

使用Caliburn Micro从视图模型中的属性名称获取控制

来自分类Dev

在MVVM(Caliburn micro)中的哪里放置全局变量

来自分类Dev

Caliburn.Micro框架中的控件命名约定

来自分类Dev

使用Caliburn.Micro的视图模型中的气泡事件

来自分类Dev

了解Caliburn.Micro中的外壳,导体,主窗口概念

Related 相关文章

热门标签

归档