Array of buttons in a grid using WPF
Below is the code in WPF in .net 4 that shows a grid that is empty at the beginning. When I add items, it displays a line with a progress bar and a submit button in the last two columns respectively. When I add another line, another progress bar and button appears. But if I click the button, the whole button uses the same event handler. How can I make each progress bar and buttons on rows different?
<Window x:Class="ObservableCollection.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Name="DataGrid" ItemsSource="Binding DataGrids" AutoGenerateColumns="False" RowHeight="30"
ColumnWidth="100" ColumnHeaderHeight="50" HeadersVisibility="Column" AlternatingRowBackground="LightBlue"
CanUserAddRows="False" Background="Transparent" RowBackground="Transparent" BorderBrush="Gray"
CellStyle="{StaticResource Body_Conternt_DataGrid_Centering}"
IsReadOnly="True" Margin="49,66,45,62" Opacity="1" >
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="UID" Binding="{Binding Uid}" />
<DataGridTextColumn Width="*" Header="Type" Binding="{Binding Type}" />
<DataGridTextColumn Width="*" Header="Channel Type" Binding="{Binding ChannelType}" />
<DataGridTextColumn Width="*" Header="Certificate" Binding="{Binding Certificate}" />
<DataGridTextColumn Width="*" Header="Life Cycle State" Binding="{Binding LifeCycle}" />
<DataGridTextColumn Width="*" Header="Status" Binding="{Binding Status}" />
<DataGridTextColumn Width="*" Header="Image UID" Binding="{Binding ImageUid}" />
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ProgressBar Height="20" Value="{Binding Progress}"></ProgressBar>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="btnSend" Click="btnSend_Click">Send</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
+3
source to share
2 answers
This link might be helpful when describing how you can get the log number when a button is clicked in the datagrid column
WPF DataGrid - Button in Column getting the row from which it appeared in the Click event handler
+2
source to share