我有一个 ListView
的自定义控件模板,它为每条记录添加一行额外的行,这在 Window.Resources 中定义了类似的内容...
<ControlTemplate TargetType="ListBoxItem">
<Border>
<StackPanel>
<GridViewRowPresenter>
<TextBlock Name="myTextBlock" />
</StackPanel>
</Border>
<ControlTemplate.Triggers>
//Triggers here
</ControlTemplate.Triggers>
</ControlTemplate>
我的问题是,我想将 TextBlock
中的文本绑定(bind)到不同 ItemsSource
,而不是绑定(bind)到实例化时的实际ListBox
。以编程方式绑定(bind)是不可能的。我尝试用 TextBlock
替换另一个 ListView
并绑定(bind)到方法,但我无法弄清楚如何使用 ObjectDataProvider
和绑定(bind)到我的代码后面的一个方法(其中包含一个会返回我想要绑定(bind)的内容列表的方法),但也遇到了问题。
快速一步一步以防我不清楚:
我有一个
ListView
模板,它为每条记录添加额外的行此
ListView
将绑定(bind)到(例如)Foo 对象的集合。问题是我想将额外的行绑定(bind)到与主
ListView
完全不同的项目源。我似乎无法在模板中执行此操作:/
那么 - 有没有一种方法可以直接绑定(bind)到我的代码中定义的方法的结果,我可以在模板中引用它?
最佳答案
好的,这就是想法:
1) 使用这样的项目模板创建绑定(bind)到 Foo
的列表框:
-------------
| DATA HERE |
| |
-------------
2)使用这样的项目模板创建绑定(bind)到完全不同的项目源
的列表框:
-------------
| |
| DATA HERE |
-------------
3) 将第一个列表框绘制在第二个列表框后面。
如果项目数量相同(据我了解,这是您的情况),您将达到您想要的视觉效果。 希望对您有所帮助。
编辑
此方法与您当前的模板不对应,但它是解决方案的变体。
关于.net - 绑定(bind)到代码隐藏中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086828/