如何从选项卡控件页面上的控件获取数据
我有一个 WPF 选项卡控件,其中包含多个重复的控件作为选项卡页内容
<TabControl ItemsSource="{Binding}" Name="tabControl">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:InnerDataEntryControl DataContext="{Binding Data}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
在 InnerDataEntry 控件上有一个列表框。 我在外部窗体上有一个命令,需要从控件上的列表框中选择项目。 我不知道如何访问选项卡控件本身的列表框。 当我尝试查询选定的项目时,我得到的是绑定的项目,而不是列表框本身。
我不想在列表项上使用“IsSelected”属性来污染业务层,并且我想如果需要的话我可以创建一个视图模型,但我无法获取有关实际内容控件的信息似乎是错误的标签页的。
我希望我只是错过了一些明显的东西。
I've got a WPF tab control that contain several duplicate controls as Tab Page content
<TabControl ItemsSource="{Binding}" Name="tabControl">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:InnerDataEntryControl DataContext="{Binding Data}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
On the InnerDataEntry control there is a list box. I've got a command on the outer form that requires the selected items from the list box on the control. I can't figure out how to access the list box on the tab control itself. When I try to query the selected items, I get the bound items and not the list box itself.
I don't want to pollute the business layer with an 'IsSelected' property on my list items, and I suppose I could create a view model if necessary, but it just seems wrong that I can't get information about the actual content control of a tab page.
I hope that I'm just missing something obvious.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在我之前的 WPF 经历中有人问过这个问题。 为了结束这个问题的循环,我将发布一个链接到 关于 MVVM 主题的 MSDN 杂志条目。
最终,解决方案涉及创建一个视图模型,该视图模型具有绑定到选项卡控件各部分的必要属性,以便视图模型不需要以我所描述的方式进行访问。 相反,视图模型直接作用于绑定的数据,而不必直接引用视图。
This was asked earlier in my WPF experience. To close the loop on the question, I'm going to post a link to the MSDN Magazine entry on the subject of MVVM.
Ultimately, the solution involves the creation of a view model that has the necessary properties bound to the parts of the tab control such that the view model doesn't need access in the way that I'm describing. Instead, the view model acts directly on the data that that is bound without having to reference the view directly.