我正在尝试使用Caliburn和以下代码绑定组合框:
的 yyyView.xaml 的
<ComboBox x:Name="Filters"></ComboBox>
的 yyyViewModel.xaml 的
private string selectedFilter;
public BindableCollection<string> Filters
{
get
{
return new BindableCollection<string>(
new string[]{ "All", "Last Month", "Last Week", "Yesterday" });
}
}
public string SelectedFilter
{
get { return selectedFilter; }
set
{
selectedFilter = value;
NotifyOfPropertyChange(() => SelectedFilter);
}
}
使用此代码,我在 App.xaml.cs 上的 ArgumentNullException < strong> GetInstance 方法。
我是MVVM,Caliburn和XAML的新手,但我在某处看到某些行为(我相信,混合行为)在WinRT开发中被删除了。
这是问题吗?我该如何解决这个问题?
谢谢
编辑:
的 App.xaml.cs 的
protected override void Configure()
{
LogManager.GetLog = type => new DebugLogger(type);
container = new WinRTContainer();
container.RegisterWinRTServices();
container.PerRequest<aaaViewModel>();
container.PerRequest<xxxViewModel>();
container.PerRequest<yyyViewModel>();
container.PerRequest<zzzViewModel>();
}
的的App.xaml 的
<caliburn:CaliburnApplication
x:Class="yyyStoreApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:yyyApp"
xmlns:caliburn="using:Caliburn.Micro"
xmlns:converters="using:yyyApp.Converters"
RequestedTheme="Light">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/CustomStyles.xaml" />
<ResourceDictionary Source="Resources/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<converters:ImageFilePathConverter x:Key="ImageFilePath"/>
</ResourceDictionary>
</Application.Resources>
</caliburn:CaliburnApplication>
答案 0 :(得分:1)
您可能未在Configure
实施中的App
方法重载中注册视图模型。请查看WinRT documentation中// TODO
代码中的App
部分。
这显然是预期的行为,但已引起一些混淆,如在CodePlex上的讨论论坛和问题跟踪器中可以看到的,请参阅here,here和here。
基本上,只需将此行添加到Configure
方法:
container.PerRequest<yyyViewModel>();