gpt4 book ai didi

c# - 选项卡控件默认选择第一个选项卡

转载 作者:太空狗 更新时间:2023-10-29 18:00:09 24 4
gpt4 key购买 nike

我不确定这是否只是默认的 WPF 选项卡控件行为,或者是否有办法禁用它。

我有一个标签控件定义如下:

<TabControl TabStripPlacement="Left"
Background="Transparent"
ItemsSource="{Binding Path=AvailableProducts}"
SelectedValuePath="Name"
SelectedValue="{Binding Path=SelectedProduct, Mode=TwoWay}">

AvailableProducts 是一个产品列表。例如:

Foo
Bar
Baz

最初,SelectedProduct 为null,但当显示选项卡控件时,它已自动选择Foo。我想要的是根本不选择任何选项卡。

选项卡控件是否总是选择第一个选项卡?

更新

我添加了一些示例代码来展示我所描述的内容。

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TabControl SelectedIndex="1">
<TabItem Header="TAB 1">
<Button>TEST</Button>
</TabItem>
<TabItem Header="TAB 2">
<TabControl TabStripPlacement="Left"
Background="Transparent"
ItemsSource="{Binding Path=AvailableProducts}"
SelectedValuePath="Name"
SelectedValue="{Binding Path=SelectedProduct, Mode=TwoWay}"/>
</TabItem>
</TabControl>
</Grid>
</Window>




using System.Collections.Generic;

namespace WpfApplication1
{
public partial class MainWindow
{
private List<Product> _availableProducts = new List<Product>();

public MainWindow()
{
SelectedProduct = null;
InitializeComponent();
_availableProducts.Add(new Product("Foo"));
_availableProducts.Add(new Product("Bar"));
_availableProducts.Add(new Product("Baz"));

DataContext = this;
}

public List<Product> AvailableProducts
{
get
{
return _availableProducts;
}
}

public string SelectedProduct { get; set; }
}

public class Product
{
public Product(string name)
{
Name = name;
}

public string Name { get; set; }

public override string ToString()
{
return Name;
}
}
}

如果您运行上面的代码,应用会以显示“TAB 2”开始,并且没有选择 Foo/Bar/Baz 选项卡。但是,如果你改变

<TabControl SelectedIndex="1">

<TabControl SelectedIndex="0">

然后运行该应用程序,它从“TAB 1”开始,当您切换到“TAB 2”时,第一个选项卡被选中 (Foo)。

我不明白为什么如果您从“TAB 2”开始,它会像我预期的那样工作,但如果您从“TAB 1”开始,然后切换到“TAB 2”,默认情况下会选择一个选项卡。

最佳答案

从 NET5.0 开始,它似乎可以使用

<TabControl SelectedIndex="0">
...
</TabControl>

但当我也使用 SelectedItem 时它不起作用。仅使用“空白”SelectedIndex,它就起作用了。

关于c# - 选项卡控件默认选择第一个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20356239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com