C# 绑定到TabControl Items.IndexOf(tbXy)的XAML

C# 绑定到TabControl Items.IndexOf(tbXy)的XAML,c#,wpf,xaml,binding,C#,Wpf,Xaml,Binding,我想绑定到Items.IndexOf(tbXy) 在c#中,很容易访问以下索引: tbControl.Items.IndexOf(tbXy) 但是在XAML中?我试过这个: Value="{Binding Path=Items.IndexOf(tbxY)}" 在转换器的帮助下,我还发现了以下建议: 有什么建议可以直接进行这种简单的绑定吗?将这种逻辑推送到ViewModel会更有意义吗?如果tbxY是一个在代码隐藏中已知的项,那么您不能在ViewModel上创建一个名为“Selected

我想绑定到Items.IndexOf(tbXy)

在c#中,很容易访问以下索引:

 tbControl.Items.IndexOf(tbXy)
但是在XAML中?我试过这个:

 Value="{Binding Path=Items.IndexOf(tbxY)}"
在转换器的帮助下,我还发现了以下建议:


有什么建议可以直接进行这种简单的绑定吗?

将这种逻辑推送到ViewModel会更有意义吗?如果tbxY是一个在代码隐藏中已知的项,那么您不能在ViewModel上创建一个名为“SelectedItem”的属性,然后绑定到其他位置吗


您可以使用DataTemplates做一些非常漂亮的事情,一旦绑定到实际项目,就可以对实际项目执行任何操作。

您不能这样做。你想要它做什么?默认情况下你不能绑定到一个方法,但是如果你真的需要它的话。也就是说,你想做什么?使用WPF的绑定系统可能有更好的方法来完成任务。@HighCore:我有一个TabControl,其中有一个TabItem,当按下按钮(用XAML完成)并获得焦点(isSelected)时,它应该是可见的。不要直接使用TabIndex(例如3),它应该尽可能独立。@benba然后为
TabItem
分配一个
x:Name
,并使用ElementName绑定。如果你不发布相关的代码和XAML,我不知道你在说什么。我的目标是在ViewModel中有尽可能少的额外代码。此外,这个TabItem的“x:Name”是视图特定的,ViewModel不应该知道关于视图的任何信息……也许我遗漏了什么,但是。。。为什么需要绑定到x:Name——这应该是无关紧要的。是的,如果您绑定到一个TabItem,而不是应该绑定到TabItem的类,那么它会有点难看,但是简单地将数据绑定到ViewModel上的对象将让您得到想要的。您不应该害怕在viewmodel中添加额外的代码。这就是ViewModel的用途。