2011-09-11 6 views
3

私はFlex for Flash開発を使用しています。 Flexのデータバインディングは本当に強力です。Silverlightデータ別の1つまたは複数のプロパティの式にプロパティをバインドする

今、私はSilverlightプロジェクトに取り組んでいます。私は、コントロールのプロパティを別のプロパティまたは複数のプロパティの式にバインドしたいだけです。例:

<Button Name="myButton" Background="{Binding myButton.IsEnabled ? #AABBCC : #DDEEFF}" /> 

実際は非常に単純で一般的なケースです。私はmyButton.Background#AABBCCボタンを有効にしたい場合は#DDEEFFを無効にしておきたいだけです。

もちろん、Backgroundプロパティを他のコントロールの複数のプロパティにバインドすることもできます。

非常に簡単です。しかし、私はSilverlightでそれを行う方法を知らない。

ありがとうございました。

のSilverlight 5のリリースと上記素晴らしい記事の後に2012年1月3日にピーター

編集

http://www.codeproject.com/KB/silverlight/SilverlightMultiBinding.aspx 。私の必要性は、コンバータを使って行うことができます(MarkupExtensionを継承し、IMultiValueConverterを実装します)。

答えて

0

bool to colorの場合、Converterが必要です。 (MSDN

複数バインディングの場合、は複数の値またはプロパティにバインドできません

あなたは1つのプロパティにバインドする必要があります。そのプロパティは必要な値を解決します。 (実行時にバインドされているプロパティはいつでも変更できますが、一度に1つのプロパティにのみバインドできます)

+1

これは実際にはデータバインディングに制限があります。複数の値やプロパティにバインドできない場合、 'IsEnabledChanged'イベントのハンドラを実装する必要があります。 –

+0

は正しいです。あなたは命令について読んだことがありますか?特にCanExecuteメソッドhttp://msdn.microsoft.com/en-us/library/ff921126(v=pandp.20).aspx – mcabral

関連する問題