Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 绑定到代码隐藏中的方法_.net_Wpf_Data Binding_Listview_Controltemplate - Fatal编程技术网

.net 绑定到代码隐藏中的方法

.net 绑定到代码隐藏中的方法,.net,wpf,data-binding,listview,controltemplate,.net,Wpf,Data Binding,Listview,Controltemplate,我有一个自定义控件模板,用于列表视图,为每条记录添加一行,在窗口中定义了类似的内容。参考资料 <ControlTemplate TargetType="ListBoxItem"> <Border> <StackPanel> <GridViewRowPresenter> <TextBlock Name="myTextBlock" /> </Sta

我有一个自定义控件模板,用于
列表视图
,为每条记录添加一行,在窗口中定义了类似的内容。参考资料

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

//这里触发
我的问题是,我想将
TextBlock
中的文本绑定到一个不同的
ItemsSource
,而不是在实例化时绑定到实际
列表框的
。以编程方式绑定是不可能的。我曾尝试用
TextBlock
替换另一个
ListView
并绑定到一个方法,但我不知道如何使用
ObjectDataProvider
并绑定到代码隐藏中的一个方法(其中包含一个方法,该方法将返回我想要绑定的内容列表),但也遇到了问题

在我不清楚的情况下,一步一步快速:

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

  • 这个
    ListView
    将绑定到(比如)一个Foo对象集合

  • 问题是我想将额外的行绑定到与主
    列表视图
    完全不同的itemsource。在我的模板中,我似乎无法做到这一点:/


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

好的,这就是想法:

1) 使用此项模板创建绑定到
Foo
的列表框:

-------------
| DATA HERE |
|           |
-------------
-------------
|           |
| DATA HERE |
-------------
2) 使用此项目模板创建绑定到完全不同的itemsource
的列表框:

-------------
| DATA HERE |
|           |
-------------
-------------
|           |
| DATA HERE |
-------------
3) 在第二个列表框后面绘制第一个列表框

如果有相同数量的物品(据我所知,这是你的情况),你将获得你想要的视觉效果。 希望能有帮助

编辑

此方法与当前模板不一致,但它是解决方案的一种变体。

如果您选择此方法,还需要考虑设置列表框的样式,以便覆盖不明显,以及同步选择,以便在第一个列表框中选择一个项,清除第二个列表框中的选择。如果你想要键盘的可访问性,你需要一些奇特的逻辑……是的,当然,尼古拉斯·阿姆斯特朗是对的,但它并不像乍看起来那么复杂。键盘功能根本不是问题,但我知道这有多困难。我从来没有想过,我应该开始编辑我的初始设计,使事情更容易。