当 JSON 文件中有可观察的集合时,我尝试为 tabitem 创建标头,如下面的代码所示。
// Deserialize the JSON array into a List<ModelClass>
List<Model> dataList = JsonConvert.DeserializeObject<List<Model>>(messagecontent);
// Convert List<ModelClass> to ObservableCollection<ModelClass>
ObservableCollection<Model> observableCollection = new ObservableCollection<Model>(dataList);
Dispatcher.Invoke(() =>
{
TabitemSub.Items.Clear();
TabitemSub.ItemsSource = observableCollection;
foreach (var item in observableCollection)
{
TabItem tabitem = new TabItem();
tabitem.Header = item.property1;
TabitemSub.Items.Add(tabitem);
}
}
我的Xaml:
<GroupBox Grid.Row="1" Header="Groupbox1:" BorderThickness="2" FontWeight="Bold" FontSize="15" BorderBrush="Black" Margin="5">
<Grid HorizontalAlignment="Stretch" Width="Auto">
<TabControl>
<TabItem Header="TabitemMain">
<TabControl x:Name="TabitemSub" Height="500" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="5">
</TabControl>
</TabItem>
但是每次我运行代码而不是给我一串 property1 时,我都会继续获取模型的路径,例如每个项目结果中的 project.MVVM.Model.Model 。为什么会发生这种情况?我该如何解决这个问题?
谢谢你
如果我进行以下更改,则设法使其正常工作:
Dispatcher.Invoke(() =>
{
TabitemSub.Items.Clear();
foreach (Model item in datalist)
{
TabItem tabitem = new TabItem();
tabitem.Header = item.property1;
TabitemSub.Items.Add(tabitem);
}
}
然后它将为每个 property1 值创建选项卡。