C# 当另一个选项卡禁用时,如何使用XAML触发器更改TabControl索引?
我在WPF应用程序中有一个TabControl,它有两个选项卡。有一个名为C# 当另一个选项卡禁用时,如何使用XAML触发器更改TabControl索引?,c#,wpf,data-binding,setter,datatrigger,C#,Wpf,Data Binding,Setter,Datatrigger,我在WPF应用程序中有一个TabControl,它有两个选项卡。有一个名为Voices的集合,您可以在第6行看到它,即Path=GameMaster.Voices.Count。我试图实现的是,当集合为空时,第二个选项卡将禁用,我已经成功地做到了这一点。然后,我希望TabControl的SelectedIndex设置为0。这不仅禁用了第二个选项卡,还强制用户返回第一个选项卡。使用下面的代码,结果在某种程度上起作用,但是,当我将第一项添加到集合中时,选项卡索引似乎设置为-1 以下是TabContro
Voices
的集合,您可以在第6行看到它,即Path=GameMaster.Voices.Count
。我试图实现的是,当集合为空时,第二个选项卡将禁用,我已经成功地做到了这一点。然后,我希望TabControl的SelectedIndex设置为0。这不仅禁用了第二个选项卡,还强制用户返回第一个选项卡。使用下面的代码,结果在某种程度上起作用,但是,当我将第一项添加到集合中时,选项卡索引似乎设置为-1
以下是TabControl在应用程序启动时的屏幕截图,此时集合中没有对象:
但是,在添加项目时,会发生以下情况:
以下是我的XAML代码:
这是我正在使用的转换器:
内部类计数大于零转换器:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性)
{
var count=System.Convert.ToInt32(值);
返回计数>0;
}
公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}
我已经试着了解发生了什么,但是我还没有找到一个合适的解决方案,任何帮助都将不胜感激。谢谢。在这里回答,然而,我并不是100%地理解为什么这解决了我的问题。所以,如果有人能让我知道到底发生了什么,那将是我知识的巨大财富 我添加了以下代码行:
...
-1是选项卡索引的默认值,表示没有选定的选项卡。将第一项添加到集合时,选项卡索引似乎设置为-1。似乎,当您将项添加到集合中时,选项卡项没有更新