C# 动态创建包装按钮
我有一个表,用于存储购买的项目和NHibernate中使用的实体类:C# 动态创建包装按钮,c#,wpf,nhibernate,data-binding,wrappanel,C#,Wpf,Nhibernate,Data Binding,Wrappanel,我有一个表,用于存储购买的项目和NHibernate中使用的实体类: public class PurchasedItem { public virtual int Id { get; set; } public virtual Product Product { get; set; } public virtual int SortSale { get; set; } } 我希望通过从PurchasedItems表(IList对象)获取所有记录
public class PurchasedItem
{
public virtual int Id { get; set; }
public virtual Product Product { get; set; }
public virtual int SortSale { get; set; }
}
我希望通过从
PurchasedItems
表(IList
对象)获取所有记录来减少代码重复。记录已按SortSale
列按降序排序。基于IList
对象创建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>
请注意,我将按钮的内容设置为PurchasedItem的Id,因此您可能需要更改它。您需要使用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>
请注意,我将按钮的内容设置为PurchasedItem的Id,因此您可能希望对此进行更改