1

私は完全な .NET/C# ナブレットです。XAML を使用してウィンドウの UI を定義するコードをいくつか継承しましたが、既存の XML ガベージとやり取りしようとしています。これはおそらく非常に単純な質問です。何をGoogleにすればいいのかわからない。

ブール値に基づいて無効にしたい TextBox があります。私はこのコードでそれを行うことができます:

リストA:

<TextBox x:Name="ServerNameTextBox" ... IsEnabled="{Binding ServerName.Editable}" />

問題は、変数とチェックボックスに基づいて作成したいときに発生します。私はすでに IMultiValueConverter について読み、これについて書いていますが、形式が変わるため、バインディングを指定する方法がわかりません。

リスト B:

<TextBox x:Name="ServerNameTextBox" ... >
    <TextBox.IsEnabled>
        <Binding ElementName="CheckBoxServerNameEnabled" Path="IsChecked" />
        <Binding ??? />
     </TextBox.IsEnabled>
</TextBox>

最初の行と同じ参照を行うには、疑問符の中に何を入れる必要がありますか? リスト A で使用されているバインディングのタイプが何と呼ばれているかを教えてくれたボーナス ポイント。

ありがとう!

4

3 に答える 3

3

{Binding ServerName.Editable}は(この場合)と同等です {Binding Path=ServerName.Editable}

だからあなたの中にMultiBindingあなたは

<MultiBinding Converter="...">
    <Binding ElementName="CheckBoxServerNameEnabled" Path="IsChecked"/>
    <Binding Path="ServerName.Editable"/>
</MultiBinding>

マークアップ拡張機能では、名前のない引数がコンストラクターに渡され、パスをとるコンストラクターがありBindingます。

于 2012-08-23T14:44:57.943 に答える
1

あなたはほとんどそこにいます。http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx を確認してください

于 2012-08-23T14:42:02.880 に答える