¿Cómo puedo configurar DataContext en mi cuadrícula en XAML, en lugar de en el constructor?Silverlight: ¿Configurar DataContext en XAML en lugar de en constructor?
Aquí es cómo lo hago en el constructor (LayoutRoot es el XAML cuadrícula definida en el XAML):
this.LayoutRoot.DataContext = this.HPVM;
yo preferiría hacerlo bien en el XAML, pero no sé cómo hacer referencia al objeto HPVM en XAML. HPVM es una propiedad pública en la clase USerControl.
Funciona bien como se menciona anteriormente, pero de nuevo, solo quiero saber cómo a las propiedades de la clase UserControl en XAML, en lugar de tener que hacerlo siempre en el código.
Aquí es todo el código en cuestión:
<UserControl x:Class="SilverlightApplication1.SLHolePattern" x:Name="HolePatternsControl"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:controls="clr-namespace:Microsoft.Windows.Controls;assembly=Microsoft.Windows.Controls"
xmlns:local="clr-namespace:SilverlightApplication1"
xmlns:GeoPatterns="clr-namespace:GeoPatterns"
Height="700">
<UserControl.Resources>
...
Y aquí es mi constructor donde el DataContext se establece actualmente:
namespace SilverlightApplication1
{
public partial class SLHolePattern : UserControl, INotifyPropertyChanged
{
public HolePatternsViewModel HPVM;
public SLHolePattern()
{
InitializeComponent();
this.HPVM=new HolePatternsViewModel();
this.LayoutRoot.DataContext = this.HPVM;
...more code here
}
Todo funciona bien, pero sólo quiero aprender a establece el DataContext en XAML, no en el código.
Si instanciar la clase ViewModel en XAML, ¿puedo seguir haciendo referencia en el constructor de código subyacente? La razón por la que pregunto es que actualmente establezco algunos valores en ViewModel en el constructor antes de que se muestre el formulario al usuario. – MattSlay
Sí, puedes. Puede hacer lo siguiente: var aCustomer = this.Resources ["Cust"] como Cliente; aCustomer.Name = "abc"; – Klinger
Olvidé agregar un atributo x: Nombre. x: La clave funciona dentro de XAML y x: el nombre hace que el objeto sea visible para el código. – Klinger