Идет, я потратил некоторое время, делая это, и вот пример, как это должно быть сделано
<DataGrid AutoGenerateColumns="False"
Height="287" HorizontalAlignment="Left"
Name="dataGrid1" VerticalAlignment="Top"
Width="479" Margin="12,12,0,0" CanUserAddRows="False" CanUserDeleteRows="False"
SelectionMode="Single" SelectionUnit="Cell" ColumnHeaderHeight="30" HeadersVisibility="All">
<DataGrid.Columns>
<DataGridTextColumn Header="Sr No" Binding="{Binding srNo}" IsReadOnly="True" />
<DataGridTextColumn Header="Some Title" Binding="{Binding ArticleTitle}" IsReadOnly="True" MaxWidth="290" />
<DataGridTemplateColumn MinWidth="100" Header="View">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Visibility="{Binding Display}" Content="This Is the Button" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
Код
public partial class MainWindow : Window
{
List<ButtonDataGrid> data = new List<ButtonDataGrid>();
public MainWindow()
{
InitializeComponent();
for (int x = 0; x < 10; x++)
{
ButtonDataGrid dataToAdd = new ButtonDataGrid();
dataToAdd.srNo = (x + 1).ToString();
dataToAdd.ArticleTitle = "This is Article No " + dataToAdd.srNo;
if (x % 2 == 0)
dataToAdd.Display = System.Windows.Visibility.Visible;
else
dataToAdd.Display = System.Windows.Visibility.Hidden;
data.Add(dataToAdd);
}
dataGrid1.ItemsSource = data;
}
}
public class ButtonDataGrid
{
public string srNo { get; set; }
public string ArticleTitle { get; set; }
public Visibility Display { get; set; }
}