4

現在、オブジェクト データ プロバイダーを使用して、リストボックス アイテムのインデックスに依存する色で、各リスト ボックス アイテムの背景として使用したい色を返そうとしています。

基本的に、オブジェクトに渡されるパラメーターは元の色と listboxitem インデックスであり、インデックスに基づいて明るい色を返します... オブジェクト データ プロバイダー用に現在持っているコードは次のとおりです。

    <ObjectDataProvider ObjectType="{x:Type local:cUserProfiles}"
              MethodName="GetRankColour" x:Key="RankColour">
        <ObjectDataProvider.MethodParameters>
            <Color> {ORIGINAL_COLOUR}<Color/>
            <system:Int16>{LISTBOXITEM INDEX}</system:Int16>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>

依存オブジェクトではなく、バインディングのルールに準拠していないため、直接バインドを実行できないこと、および直接設定する必要があることは承知しています...ただし、リストボックス項目 xaml のどこにあるのかわかりません私は縛り返すことになっています。

さらに、これに対する答えを長い間検索したところ、このメソッドを使用してテキストボックスに入力したものなどに基づいてパラメーターのみを変更する例しか見つかりませんでした:-

{Binding Source={StaticResource RankColour},   
                 Path=MethodParameters[1],  
                 BindsDirectlyToSource=True,  
                 UpdateSourceTrigger=PropertyChanged}

リストボックスのインデックスにバインドしたいので、それをどのプロパティに入れるかわかりません。

2 番目の質問: リストボックス項目には、コンテンツがリストボックス項目インデックスにバインドされているラベルがありますが、常にインデックスにバインドしたい場合、上記のバインド ソース手法を使用してコンテンツをバインドするにはどうすればよいですか?

事前にご協力いただきありがとうございます。=)

4

1 に答える 1

0

これはちょっとばかげているように見えるかもしれませんが、背後にあるコードを使用してこれを間接的にリンクすることを考えましたか?つまり、一連の変数を使用し、ケースを選択して、必要なプロパティを設定します。データバインディングが本当に頭痛の種になる可能性があることを私は知っています-通常、まったく同じ最終結果を引き出す別の方法がある場合は、それを避けます。

私はあなたの最終目標が何であるかについてもう少し詳細が本当に必要かもしれません(私のコーヒーがまだ英語を理解するのに十分にキックされていない可能性がありますが、笑)。データベースを使用していますか?各ユーザーのランクをどのように取得しますか?

于 2011-01-18T17:11:23.710 に答える