I would suggest you to start by reading about MVVM:
Model-View-ViewModel (MVVM) Explained[
^]
MVVM for Beginners[
^]
You would setup a model that is a collection for your grid as source. Columns in it mapped to fields in the object type you made collection of.
Now, in your case above, if you want to do it using a dictionary, it would be something like:
<Window x:Class="DictionaryDataGridDemo.SingleDictView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DictionaryDataGridDemo"
Title="test"
Width="500"
Height="300">
<Window.DataContext>
<local:MyViewModel />
</Window.DataContext>
<Grid>
<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding MyDictionary}">
</DataGrid>
</Grid>
</Window>
ViewModel
public class MyViewModel
{
public Dictionary<double, string> MyDictionary { get; set; }
public MyViewModel()
{
MyDictionary = new Dictionary<double, string>();
MyDictionary.Add(100, "AAA100");
MyDictionary.Add(200, "BBB200");
MyDictionary.Add(300, "CCC300");
}
}