gpt4 book ai didi

c# - 动态创建 WrapPanel 按钮

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:00 26 4
gpt4 key购买 nike

我有一张表存储购买的元素和在 NHibernate 中使用的实体类:

public class PurchasedItem
{
public virtual int Id { get; set; }
public virtual Product Product { get; set; }
public virtual int SortSale { get; set; }
}

我想通过从 PurchasedItems 中获取所有记录来减少代码重复表(IList <PurchasedItem> 对象)。记录已按 SortSale 降序排序柱子。创建 WrapPanel 的最佳方式是什么?基于 IList <PurchasedItem> 的按钮目的?我也想为每个按钮分配事件处理程序。该按钮显示带有产品名称的标题。

最佳答案

您需要使用 WrapPanel 作为 ItemsPanel 创建一个列表框。在 XAML 中,您可以执行以下操作:

<ListBox Name="MyList" ItemsSource={StaticResource YourList}>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Button Height="40" MinWidth="40" Content="{Binding Id}" Click="Button_Click"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

在此示例中,我假设 YourList 是 PurchasedItem 的列表。您还可以从代码中设置 ItemsSource(即:MyList.ItemsSource = YourList;)。当您单击该按钮时,它会调用以下内容,它可以显示一个包含您需要的任何内容的消息框:

    private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(((sender as Button).DataContext as PurchasedItem).Product.Name);
}

请注意,我将按钮的内容设置为 PurchasedItem 的 ID,因此您可能想要更改它。

关于c# - 动态创建 WrapPanel 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766875/

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