передача индекса элемента списка в качестве параметра в objectdataprovider

В настоящее время я пытаюсь использовать поставщика данных объекта, чтобы вернуть цвет, который я хотел бы использовать в качестве фона для каждого элемента списка, с цветом, зависящим от этого индекса элементов списка.

В основном параметры, передаваемые объекту, - это исходный цвет и индекс элемента списка, и он будет возвращать более светлый цвет в зависимости от того, какой это индекс ... вот код, который у меня есть в настоящее время для поставщика данных объекта:

    <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}

Я хочу, чтобы он был привязан к индексу списка, поэтому не уверен, в какое свойство его поместить.

Второй вопрос: у элемента списка есть метка, содержимое которой привязано к индексу элемента списка, однако как я могу использовать вышеуказанный метод источника привязки для привязки контента, если я всегда хочу привязать его к индексу?

Заранее спасибо за помощь! знак равно


person Jay    schedule 03.10.2010    source источник


Ответы (1)


Это может показаться глупым, но думали ли вы о том, чтобы косвенно связать это с помощью кода? То есть, используя серию переменных и выбирая случаи, чтобы установить свойства, которые вы хотите. Я знаю, что привязка данных может стать настоящей головной болью - я избегаю этого, если есть другой способ добиться того же конечного результата, как правило.

Мне действительно может понадобиться немного больше деталей о том, какова ваша конечная цель (хотя может быть, что мой кофе еще не набрал достаточного количества для меня, чтобы понять английский, смеется). Вы используете базу данных? Как вы получаете рейтинг для каждого пользователя?

person CodeMouse92    schedule 18.01.2011