Динамические пользовательские элементы управления - PullRequest
0 голосов
/ 26 июня 2019

Я новичок в WPF и хочу добавить кнопки на основе SQL-запроса, как в 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)
{

}

1 Ответ

0 голосов
/ 26 июня 2019

Сначала создайте модель для вывода.

Затем создайте наблюдаемую коллекцию вашей модели как свойство в вашем коде за

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

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

После этого вы можете привязать ее к DataGrid, напримерthis

<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>

Этот код не проверен, но, возможно, вам стоит попробовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...