Одна вещь, которую вы забыли указать, какой шаблон использовать:
<DataTemplate x:Key="Node">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="20"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" MinWidth="20"/>
</Grid.ColumnDefinitions>
<Border Background="{Binding XPath=@Background}" Grid.Column="0">
<Image Source="{Binding XPath=@Image}"
Width="16"
Height="16"
Margin="3" />
</Border>
<Border Background="{Binding XPath=@Background}" Grid.Column="1">
<TextBlock Foreground="{Binding XPath=@Foreground}"
Margin="3"
Text="{Binding XPath=@Property}" />
</Border>
<Border Background="{Binding XPath=@Background}" Grid.Column="2">
<TextBlock Foreground="{Binding XPath=@Foreground}"
Margin="3"
FontWeight="Bold"
Text="{Binding XPath=@Value}" />
</Border>
</Grid>
</DataTemplate>
А потом ваш ComboBox:
<ComboBox Name="myComboBox"
ItemsSource="{Binding Source={StaticResource xmlNodeList}}"
ItemTemplate="{StaticResource Node}"
SelectedIndex="0" />
Система dataType работает с типизированным объектом, я не уверен, что вы сможете заставить его работать с данными XML. Это будет работать.
Обновление:
Перед тем как спросить, вы также должны определить стиль для элементов, чтобы они соответствовали ширине списка, иначе ваши столбцы будут неравномерными:
<ComboBox Name="myComboBox"
ItemsSource="{Binding Source={StaticResource xmlNodeList}}"
ItemTemplate="{StaticResource Node}"
SelectedIndex="0">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment"
Value="Stretch" />
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
Это растянет отдельные элементы на всю ширину списка.