绑定到后面的代码中的方法

时间:2010-01-18 14:56:10

标签: .net wpf data-binding listview controltemplate

我有一个ListView的自定义控件模板,为每条记录添加一条额外的行,这些在Window.Resources中定义了类似的内容......

<ControlTemplate TargetType="ListBoxItem">
    <Border>
        <StackPanel>
            <GridViewRowPresenter>
            <TextBlock Name="myTextBlock" />
        </StackPanel>
     </Border>
     <ControlTemplate.Triggers>
         //Triggers here
     </ControlTemplate.Triggers>
</ControlTemplate>

我的问题是,我想将TextBlock中的文本绑定到不同的 ItemsSource,而不是绑定到实际ListBox的文本当它实例化时。以编程方式绑定是不可能的。我已经尝试用TextBlock代替另一个ListView并绑定到一个方法,但我无法弄清楚如何使用ObjectDataProvider并绑定到我后面的代码中的方法(其中包含一个方法,它会返回我想要绑定的东西列表),但也遇到了问题。

如果我不清楚,请快速一步一步:

  • 我有一个ListView模板,可为每条记录添加额外的行

  • ListView将绑定(比方说)Foo对象的集合。

  • 问题是我想将额外的行绑定到与主ListView完全不同的itemsource。我似乎无法在我的模板中执行此操作:/

那么 - 有没有办法直接绑定到我后面的代码中定义的方法的结果,我可以在模板中引用它?

1 个答案:

答案 0 :(得分:1)

好的,这就是想法:

1)使用这样的项目模板创建与Foo绑定的列表框:

-------------
| DATA HERE |
|           |
-------------

2)使用这样的项目模板创建与completely different itemsource绑定的列表框:

-------------
|           |
| DATA HERE |
-------------

3)在第二个列表框后面绘制第一个列表框。

如果项目数相同(这是我理解的情况),您将获得所需的视觉效果。 希望它有所帮助。

修改
此方法与您当前的模板不对应,但它是解决方案的变体。