2016-06-21 18 views
0

私はカスタムButton型を持っていますが、コードを変更できません。このボタンには、セミコロンで区切られた値の文字列を受け取るMyArgumentsというプロパティがあります。StringFormat XAML複数のコントロールへのバインド

私はいくつかの情報を入力するための画面上にTextBoxesの束を持っています。

<TextBox Name="TestTextBox1" /> 
<TextBox Name="TestTextBox2" /> 
<TextBox Name="TestTextBox3" /> 

ボタンにこれらの3つの値を入力し、それらをMyArguments文字列プロパティに渡したいとします。一つだけのTextBoxがあった

場合、私はこのようなStringFormatオプションを使用することができます:あなたはStringFormatで複数のコントロールを使用することはできませんしかし

<MyButton MyArguments="{Binding ElementName=TestTextBox1, Path=Text, StringFormat='Arguments;{0}' }/> 

MultiBindingを使用しようとしましたが、MyArgumentsプロパティでエラー'The attachable property 'MyArguments' was not found in type MyButton'が返されました。

<MyButton.MyArguments> 
    <MultiBinding StringFormat="Arguments;{0};{1}"> 
     <Binding ElementName="TestTextBox1" Path="Text" /> 
     <Binding ElementName="TestTextBox2" Path="Text" /> 
    </MultiBinding> 
</MyButton.MyArguments> 

純粋なXAMLでこれを行う必要があります。コードはありません。

アイデア?

+0

それは、エラーのどのような?それはコンパイルされますか?ランタイムエラー? –

+0

@Dennis: 'StringFormat'を使用していない場合。 –

+0

@ H.B。コンパイルエラー。 – CathalMF

答えて

2

あなたがプロパティに(例えばlocal)名前空間接頭辞を追加するのを忘れ:

<local:MyButton> 
    <local:MyButton.MyArguments> 
     <MultiBinding StringFormat="Arguments;{0};{1}"> 
      <Binding ElementName="TestTextBox1" Path="Text" /> 
      <Binding ElementName="TestTextBox2" Path="Text" /> 
     </MultiBinding> 
    </local:MyButton.MyArguments> 
</local:MyButton> 
0

これは、パーサが要素の構文プロパティを要素インスタンスに関連付けることができないように思えます。私。それはあなたがインスタンスプロパティであると考えられているにもかかわらず、アタッチされたプロパティを定義していると考えます。

<ListBox ItemsSource="{Binding Data}"> 
    <ListView.ItemTemplate> 
    <!-- Template --> 
    </ListView.ItemTemplate> 
<ListBox> 

同じタイプを参照していますか?また、ボタンにプレフィックスがないかどうか、または実際にシステムを悪用してアセンブリをコンパイルしてWPF名前空間を使用したかどうかは奇妙に見えますか?

関連する問題