动态面板按钮WPF c#常用

本文关键字:常用 WPF 按钮 动态 | 更新日期: 2023-09-27 18:15:12

我试图找到一个最好的或常见的做法,从数据库列表创建按钮表。

对于我的使用,我正在创建更多的销售点类型的屏幕。我想要的类别加载为按钮在进入屏幕上。这些按钮有一个简单的任务,就是显示一个屏幕,上面是动态创建的实际项目的按钮。这些按钮会将项目添加到,我们称之为票。

我找到的解决方案很少。我也在努力编写这个代码,这样其他人就可以相当快地掌握它。我非常生疏,只是偶尔编写代码。所以我尽量遵循一般的做法。我有一些想法,但代码变得难以阅读,主要是因为我。

我看到了下面的链接,但不确定ListBox是否是一个很好的容器。从DB动态填充WrapPanel按钮,设置事件处理程序

我确信包装纸是我必须使用的,但是我是把它放在容器里还是直接使用它?我是把它放在Xaml中,还是将其全部编码,以解决按钮间距等问题?我想我想得太多了,需要跳过一会儿。

谢谢你,

动态面板按钮WPF c#常用

听起来你想要一个ItemsControl,绑定到你的类别,用WrapPanel作为ItemsPanelButton将进入ItemTemplate

<ItemsControl ItemsSource="{Binding CategoriesFromDatabase}"> 
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button Content="{Binding}" 
                    Command="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl},Path=DataContext.AddToTicketCommand}"
                    CommandParameter="{Binding}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

这里我假设您的视图模型具有属性"categoresfromdatabase"(您从数据库中填充的IEnumerable),以及ICommand"AddtoTicketCommand",它将类别作为参数。