将列表框项索引作为参数传递给objectdataprovider

时间:2010-10-03 10:14:30

标签: wpf listbox objectdataprovider

我目前正在尝试使用对象数据提供程序返回我想用作每个列表框项目背景的颜色,颜色取决于该列表框项目索引。

基本上传递给对象的参数是原始颜色和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>

我知道你不能做直接绑定,因为它不是依赖对象而且不符合绑定规则,你必须直接设置它...但是,我不知道我的位置在哪里listbox item xaml我应该绑定回来。

此外,在长时间搜索答案之后,我只找到了一些例子,人们只根据某人使用此方法进入文本框的内容来更改参数: -

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

我希望它绑定到列表框索引,因此不确定要将其放入哪个属性。

第二个问题: 列表框项目确实有一个标签,其内容绑定到列表框项目索引,但是,当我总是想将它绑定到索引时,如何使用上述绑定源技术绑定内容?

提前感谢您的帮助! =)

1 个答案:

答案 0 :(得分:0)

这看起来有点傻,但您是否想过使用背后的代码间接链接?也就是说,使用一系列变量和选择案例来设置您想要的属性。我知道数据绑定可能会成为一个真正令人头痛的问题 - 如果有另一种方法来提取完全相同的最终结果,我会避免它。

我真的需要更详细一点关于你的最终目标是什么(虽然可能是因为我的咖啡还没有踢足够让我理解英语,哈哈)。你在使用数据库吗?你如何获得每个用户的排名?