让我的视图模型显示在命名空间下拉列表中
本文关键字:命名空间 下拉列表 显示 我的 视图 模型 | 更新日期: 2023-09-27 18:31:44
我正在尝试将 ViewModel 公开为页面上的静态资源,以便绑定可以轻松访问它。
测试视图模型.cs
namespace Test.WPFUI.Home
{
public class TestViewModel....
你好世界观.Xaml
xmlns:local="clr-namespace:Test.WPFUI.Home"
<UserControl.Resources>
<local:TestViewModel x:Key="mainPageViewModel" />
</UserControl.Resources>
找不到测试视图模型。请问一些提示或建议。
从 http://www.telerik.com/help/silverlight/gridview-troubleshooting-blank-cells.html 获得帮助
public class LoanViewModel : ScreenViewModelBase<LoanViewModel>, IRecord, INotifyPropertyChanged
{
public LoanViewModel(IEventAggregator events) .............
听起来您最初的问题是没有完整的 xmlns 定义。通常需要命名空间和程序集。
根据我的经验,最简单的方法是让智能感知为你做这件事。只需开始键入所需的命名空间,只要它在引用的项目中,就会有一个自动完成选项。
第二个问题是由于没有默认构造函数。你写了这个:
<local:TestViewModel x:Key="mainPageViewModel" />
这将调用默认构造函数。但是,您可以在此处定义构造函数:
public LoanViewModel(IEventAggregator events) .............
这将删除提供的(无参数)默认构造函数。我将进行一个疯狂的猜测,并说创建正确的IEventAggregator
并不简单,也不是 XAML 所需的,因此我看到了两种选择:
在构造函数中,您实际上并不需要该参数。只需将默认构造函数添加到您的视图模型,您就可以开始了!
你确实需要该参数,因此从 XAML 实例化不是一个好主意。从视图构造函数上的其他位置传入视图模型。
如果你觉得可以从 XAML 实例化正确的对象,请使用这篇文章来调用参数化构造函数:从 XAML 调用参数化构造函数
在我看来,将真正的常规类放入 XAML 不是一个好的模式,所以我不会。我所说的常规,是指与视图完全无关。