gpt4 book ai didi

c# - 让我的 Viewmodel 出现在命名空间下拉列表中

转载 作者:行者123 更新时间:2023-12-03 10:36:14 25 4
gpt4 key购买 nike

我正在尝试将 ViewModel 公开为页面上的静态资源,以便绑定(bind)可以轻松访问它。

测试 View 模型.cs

namespace Test.WPFUI.Home
{
public class TestViewModel....

HelloWorldView.Xaml
xmlns:local="clr-namespace:Test.WPFUI.Home"

<UserControl.Resources>
<local:TestViewModel x:Key="mainPageViewModel" />
</UserControl.Resources>

找不到 TestViewModel。我可以请教一些提示或建议吗?

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 并不简单或不需要,所以我看到了两个选择:
  • 您实际上并不需要构造函数中的该参数。只需将默认构造函数添加到您的 View 模型,您就可以开始了!
  • 您确实需要该参数,因此从 XAML 实例化并不是一个好主意。从 View 构造函数的其他地方传入您的 View 模型。

  • 如果您觉得可以从 XAML 实例化正确的对象,请使用这篇文章来调用参数化构造函数: Calling a parameterized constructor from XAML

    在我看来,将真正的常规类放入 XAML 并不是一个好的模式,所以我不会。常规,我的意思是与 View 完全无关。

    关于c# - 让我的 Viewmodel 出现在命名空间下拉列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115192/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com