Aquí son datos estáticos pura XAML enganchan en una cuadrícula de datos:
<Window x:Class="WpfStaticDataBinding.XMLWindows"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="XMLWindows" Height="152" Width="294">
<Window.Resources>
<XmlDataProvider x:Key="MockList" XPath="/MockObjects/*" >
<x:XData >
<MockObjects xmlns="">
<MockObject Name="Louis" Type="TTTT" Number="1" />
<MockObject Name="Joseph" Type="TTTT" Number="2" />
<MockObject Name="Papineau" Type="ZZZZ" Number="3" />
</MockObjects>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid DataContext="{Binding Source={StaticResource MockList}}">
<DataGrid HorizontalAlignment="Stretch" Margin="10" VerticalAlignment="Stretch"
ItemsSource="{Binding Mode=Default, XPath=/MockObjects/MockObject}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding [email protected]}" ></DataGridTextColumn>
<DataGridTextColumn Header="Type" Binding="{Binding [email protected]}"></DataGridTextColumn>
<DataGridTextColumn Header="Number" Binding="{Binding [email protected]}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
Resultado:
![enter image description here](https://i.stack.imgur.com/Dj8Vw.png)
yo no era capaz de autogenerar columnas utilizando XmlDataProvider (probablemente estoy perdiendo algo):
<Grid DataContext="{Binding Source={StaticResource MockList}}">
<DataGrid HorizontalAlignment="Stretch" Margin="10" VerticalAlignment="Stretch"
ItemsSource="{Binding Mode=Default, XPath=/MockObjects/MockObject}">
</DataGrid>
</Grid>
![enter image description here](https://i.stack.imgur.com/uJA1E.png)
pero utilizando un código Detrás de clase como Dave sugerencia permitir autobinding a trabajar y en mi opinión es mucho más simple (yo prefería el enfoque ResourceDictionary
sin embargo):
Código:
namespace WpfStaticDataBinding
{
public class MockRecord
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
}
XAML
<Window x:Class="WpfStaticDataBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfStaticDataBinding"
Title="MainWindow" Height="157" Width="302">
<Window.Resources>
<ResourceDictionary>
<x:Array x:Key="MyDumbMockedList" Type="local:MockRecord">
<local:MockRecord FirstName="Fred" LastName="Flintstone" Email="[email protected]" />
<local:MockRecord FirstName="Wilma" LastName="Flintstone" Email="[email protected]" />
<local:MockRecord FirstName="Barney" LastName="Rubble" Email="[email protected]" />
</x:Array>
</ResourceDictionary>
</Window.Resources>
<Grid>
<DataGrid Margin="10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
ItemsSource="{Binding Source={StaticResource MyDumbMockedList}}"/>
</Grid>
Por qué bajar voto? La gente, si está downvoting en una respuesta, needto tener un decensy de al menos de añadir un comentario sobre "por qué" – Adarsha
es bastante obvio que esta es una respuesta de solo un enlace. – Console
No, no es solo un enlace ... ¡Si me detuviera después de la primera línea, entonces tendría! De hecho, explique por qué el ejemplo en el artículo vinculado realmente será útil para el OP. Por lo tanto, está marcado como "Respuesta aceptada". Pero de todos modos.! – Adarsha