Welcome to a WPF DataGrid crash course ... literally. It will show you how Cider can give you a hangover. It took me 45 minutes, 10 process kills, and a full reboot to figure out what was going on in my application, so I gladly share my experience.
Part one: the bug
Create a WPF Form with an empty DataGrid, like this:
<Window x:Class="U2UConsult.DockOfTheBay.DataGridWorkaround"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
Title="Bug Workaround" SizeToContent="WidthAndHeight">
<Grid>
<toolkit:DataGrid>
<toolkit:DataGrid.Columns>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
</Grid>
</Window>
Then, add a style that adds a Margin to the Button control, e.g. as a Resource for the Window:
<!-- Kaboom-->
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Margin" Value="3" />
</Style>
</Window.Resources>
Now is a good time to save your solution.
Add a column to the DataGrid:
<toolkit:DataGridTextColumn Header="Test" />
You will probably see something like this now, with an ever increasing counter:
Cider -the WPF Designer for Visual Studio.NET- entered an infinite loop.
Start Task Manager and inspect Visual Studio.NET's process, it's consuming close to 100% CPU:
Kill the process.
What you just experienced is a confirmed bug. The current version of the WPF DataGrid hangs Visual Studio.NET's Designer when buttons are decorated with a margin.
Part two: the Workaround
So now you know what may cause this behavior. Fortunately this shouldn't stop you from using a DataGrid, because the workaround is simple. All you need to do is embed a style in your DataGrid that resets the button margin to zero:
<toolkit:DataGrid>
<!-- Workaround for bug: No button margins allowed -->
<Style TargetType="{x:Type Button}">
<Setter Property="Margin" Value="0" />
</Style>
<!-- End of Workaround -->
<toolkit:DataGrid.Columns>
<toolkit:DataGridTextColumn Header="Test" />
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
This is just one of the many inconveniences with the current version of the toolkit. I strongly advise you to regularly check the issue tracker if you're planning to use its components in production.