【问题标题】:Dynamic User Controls动态用户控制
【发布时间】:2019-06-26 09:14:38
【问题描述】:

我是WPF 的新手,想在SQL-Query 的基础上添加按钮,就像在ASP.Net ListView 中一样。我想动态地在DataTable 的记录基础上制作按钮。我应该用什么?背后的代码是什么?

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand("select * from tblGroup", con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{

}

【问题讨论】:

  • 诸如 “我应该使用什么?” 之类的问题与 stackoverflow 无关

标签: c# sql database wpf user-controls


【解决方案1】:

首先为您的输出创建一个模型。

然后在后面的代码中创建一个模型的可观察集合作为属性

public ObservableCollection<YourModel> Collection { get; private set; }    

public Window() {
    Collection = GetYourData();
    InitializeComponent();
}

之后,您可以将其绑定到这样的 DataGrid

<DataGrid x:Name="YourTable" ItemsSource="{Binding ElementName=YourWindow, Path=Collection}">
     <DataGrid.Columns>
         <DataGridTextColumn Header="Example" Binding="{Binding ModelProperty}"/>
         <DataGridTemplateColumn Header="Your Button">
             <DataGridTemplateColumn.CellTemplate>
                 <DataTemplate>
                     <Button Content="Your Button">
                        <Button.Style>
                            <Style>
                                <Setter Property="Button.Visibility" Value="Hidden"/>
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding YourDependingModelProperty}" Value="YourDesiredValue">
                                         <Setter Property="Button.Visibility" Value="Visible"/>
                                         <EventSetter Event="Click" Handler="YourClickEvent"/>
                                    </DataTrigger>
                                    <!-- You can add more triggers here -->
                                </Style.Triggers>
                            </Style>
                        </Button.Style>
                 </DataTemplate>
             </DataGridTemplateColumn.CellTemplate>
         </DataGridTemplateColumn>
     </DataGrid.Columns>
</DataGrid>

此代码未经测试,但可能值得一试

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 2012-01-09
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多