Передача индекса элемента списка в качестве параметра объектному провайдеру - PullRequest
4 голосов
/ 03 октября 2010

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

В основном параметрыобъекту передается исходный цвет и индекс 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}

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

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

Спасибо за вашу помощь заранее!=)

1 Ответ

0 голосов
/ 18 января 2011

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

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

...