.net - 绑定(bind)到代码隐藏中的方法

标签 .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 中的文本绑定(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/

相关文章:

wpf - DependencyProperty 未触发

c# - System.Windows.Data 错误 : 1 System. Windows.Data 错误:5

.net - 使用 WCF 进行动态编程

c# - 从快速启动中删除所有链接?

c# - WPF 绑定(bind)找不到引用的绑定(bind)源

wpf - 如何在 TextBox 与 WPF 中的 MVVM 绑定(bind)时设置 TextBox.Text 值

c# - 使用可观察对象使用数据库中的数据绑定(bind)更新数据网格

c# - 数据绑定(bind) InkCanvas child

.net - 如何在.net中使用uddi

c# - 从数据访问层提取业务逻辑