gpt4 book ai didi

wpf - 您可以在 XAML 中向数据绑定(bind) ItemsControl 添加额外的项目吗?

转载 作者:行者123 更新时间:2023-12-02 02:58:48 25 4
gpt4 key购买 nike

我有一个ItemsControl,它是绑定(bind)到decimal列表的数据。我需要向 ItemsControl 添加一个额外的控件(手动指定数字的选项)。有没有办法在 XAML 中做到这一点?我知道我可以在后面的代码中手动添加该项目,但我试图更好地理解 WPF,并想看看是否有一种声明性方法可以做到这一点。

请注意,修改我绑定(bind)的列表以使其包含额外的按钮(可能通过更改为字符串列表而不是十进制列表)这不是一个好的选择,因为我想将命令附加到最后一个按钮。

此外,在 ItemsControl 之后添加额外的按钮也不是一个好的选择,因为我的控件使用 UniformGrid 并且我希望在同一网格中添加额外的控件.

这是我的 XAML:

<ItemsControl ItemsSource="{Binding PossibleAmounts}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Name="ButtonsGrid">
</UniformGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button>
<TextBlock Text="{Binding StringFormat='\{0:C\}'}"/>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

基本上,我想在 UniformGrid 中多一个按钮。

最佳答案

您可以使用CompositeCollection为此目的,它将多个集合或单个项目组合为 ItemsControl 的 ItemsSource。

MSDN 文章中有一个很好的示例,或者这是另一个示例:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid.Resources>
<x:Array x:Key="intData" Type="{x:Type sys:Int32}">
<sys:Int32>1</sys:Int32>
<sys:Int32>2</sys:Int32>
<sys:Int32>3</sys:Int32>
</x:Array>
<x:Array x:Key="stringData" Type="{x:Type sys:String}">
<sys:String>Do</sys:String>
<sys:String>Re</sys:String>
<sys:String>Mi</sys:String>
</x:Array>
</Grid.Resources>
<ListBox>
<ListBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{StaticResource intData}"/>
<CollectionContainer Collection="{StaticResource stringData}"/>
<ListBoxItem>One more item!</ListBoxItem>
<ListBoxItem>Two more items!</ListBoxItem>
</CompositeCollection>
</ListBox.ItemsSource>
</ListBox>
</Grid>

关于wpf - 您可以在 XAML 中向数据绑定(bind) ItemsControl 添加额外的项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/381859/

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