0

我在 C# 中的 WPF 应用程序使用了 MVVM 模式。我定义了两个用户控件:

  • 登录视图
  • 项目查看

两个用户控件都添加到主窗口并使用相同的视图模型。LoginView包含一个PasswordBox定义如下:

<PasswordBox Name="passwordBox" IsEnabled={Binding PasswordEnabled} />

包含一个按钮,ProjectsView定义如下:

<Button Content="Login" Command="{Binding ProjectLoginCommand}" IsEnabled={Binding ProjectLoginEnabled}" CommandParameter="{Binding ElementName=passwordBox}" />

启动应用程序时,似乎passwordBox无法绑定元素名称。错误信息是:

Cannot find source for binding with reference 'ElementName=passwordBox' [...]

我怎样才能解决这个问题?

4

1 回答 1

1

你的元素

<PasswordBox Name="passwordBox" IsEnabled={Binding PasswordEnabled} />

位于LoginView用户控件中,但按钮

<Button Content="Login" Command="{Binding ProjectLoginCommand}" IsEnabled={Binding ProjectLoginEnabled}" CommandParameter="{Binding ElementName=passwordBox}" />

位于ProjectsView. 问题是您想从另一个用户控件的一个用户控件子元素访问。在我看来,将所有登录 UI 封装在LoginView用户控件中并将您的“项目”UI封装在用户控件中应该是更好的解决方案ProjectsView

于 2012-12-05T12:48:47.203 回答