gpt4 book ai didi

wpf - TabControl 在使用数据绑定(bind)时无法创建第一个选项卡

转载 作者:行者123 更新时间:2023-12-01 13:00:45 25 4
gpt4 key购买 nike

我有一个选项卡控制我将哪些项目源数据绑定(bind)到一个可观察的集合。我使用数据模板来定义选项卡标题和内容的可视化表示。

当我将一个项目添加到可观察集合时,我得到一个选项卡标题但没有内容。当我将第二个项目添加到可观察集合时,我得到了两个项目的选项卡标题和内容。因此,首先当第二个项目被添加到可观察集合时,第一个选项卡的内容被创建。任何人都知道这是一个错误还是可以解释为什么会发生?有解决方法吗?我尝试使用具有相同结果的模板选择器。下面是要重现的示例代码。

我用 .NET 3.5 和 4.0 测试了这个。

XAML:

<Window x:Class="TabDemo.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">

<StackPanel>
<Button Content="Add new tabitem" Click="OnAdd" />

<TabControl
ItemsSource="{Binding Path=Items}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</StackPanel>

</Window>

代码隐藏:

public partial class Window1
{
public Window1()
{
InitializeComponent();

Items = new ObservableCollection<int>();
DataContext = this;
}

public ObservableCollection<int> Items { get; set; }

private void OnAdd(object sender, RoutedEventArgs e)
{
Items.Add(_random.Next(100));
}

private readonly Random _random = new Random();
}

最佳答案

如果您在 TabControl 上设置 SelectedIndex="0",它将解决此问题。我相信这与在添加/删除项目时强制 SelectedIndex 的错误有关。

关于wpf - TabControl 在使用数据绑定(bind)时无法创建第一个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6113933/

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