0

私の C# の WPF アプリケーションは、MVVM パターンを利用しています。私が定義した 2 つのユーザー コントロールがあります。

  • ログインビュー
  • プロジェクトビュー

どちらのユーザー コントロールもメイン ウィンドウに追加され、同じビュー モデルを使用します。には、次のように定義された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 に答える