私の目標は、WPFプロジェクトのRadGridViewのセルの背景色を、基になるデータの値のものにすることです。しかし、このデータは動的ですので、あらかじめ定義されたテンプレートを使用することはできません。WPF:コード内のテンプレートのバインディングを変更する
私の基になるテーブルにはRGB値がありますが(コンマではなくスペースを使用していますので、これを修正するためにコンバータを使用します) 「色」欄及びテンプレートシングル、すべてが御馳走を働いた:
<Window.Resources>
<local:StringToBrushConverter x:Key="lStringToBrushConverter"></local:StringToBrushConverter>
<DataTemplate x:Key="ColourCellTemplate">
<Border Name="lBorder" BorderThickness="3" Margin="1" CornerRadius="1" Width="100"
BorderBrush="{Binding Colour, Converter={StaticResource lStringToBrushConverter}}">
<TextBlock Background="{Binding ElementName=lBorder, Path=BorderBrush}" ></TextBlock>
</Border>
</DataTemplate>
</Window.Resources>
問題は、私は、ダイナミックなシナリオで使用できるように、このテンプレートを扱うことができますどのようになりました。
BorderBrush="{Binding Colour, Converter={StaticResource lStringToBrushConverter}}"
が、私はそれがコードビハインドで達成することができるかわからない:基本的に私は変更する必要があるのはこの部分で「カラー」です。私はTryFindResourceを使用してDataTemplateを保持することができますが、バインドを変更する次のステップは私が立ち往生した場所です。
Telerikの例はthisです。値が別の値と比較されているにもかかわらず、私の問題は解決されません。
感謝..
なぜCellTemplateSelectorが役に立たないのですか?それはあなたが必要とするものとまったく同じように、データ項目に基づいてテンプレートを選択することができます。 – Evk
私は数百の行をすべて別の値にすることができました。私はそれぞれの事実に合わせてテンプレートを作成したくありません。それは私が持っていればうまくいくでしょう。赤、青、緑、または何かであるが、RGB値はカラーピッカーを使用してユーザによって選択される。 – miriyo
あなたの問題は明確ではありません。 Colorプロパティで表される各行にRGB値があります。あなたが説明するようにColorにバインドできないのはなぜ、バインディングを変更するのか?それとも、違いは3つの列(R、G、B)が1つではないということですか? – Evk