Si quieres que este miembro sea databindable con Winform o WPF, creo que debes declararlo como un propiedad. Soy aproximadamente un 95 por ciento positivo de que la unión de datos requiere una propiedad (sintaxis getter/setting). Tengo una solución de wpf pequeña que demuestra esto, pero no veo la manera de adjuntarlo aquí.
Aquí está el código: (creado con VS 2008 SP1, orientación .net 3.5 - Usé un proyecto de WPF). Hay 2 elementos en el proyecto WPF, la ventana principal (ventana1) y el objeto que estamos probando (DataObject) Hay una etiqueta en la ventana que está vinculada a la propiedad Name en una instancia de objeto de datos. Si convierte la propiedad Name a un campo (elimina el getter/setter), el enlace de datos dejará de funcionar.
Ventana1.xaml:
<Window x:Class="WpfDatabinding.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Label Name ="Label1" Height="28" Margin="12,24,37,0" VerticalAlignment="Top" Content="{Binding Name}"></Label>
</Grid>
Window1.xaml.cs
using System;
using System.Windows;
namespace WpfDatabinding
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
private DataObject ADataObject;
public Window1()
{
InitializeComponent();
this.ADataObject = new DataObject();
this.ADataObject.Name = "Hello!";
this.DataContext = this.ADataObject;
}
}
}
namespace WpfDatabinding
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
private DataObject ADataObject;
public Window1()
{
InitializeComponent();
this.ADataObject = new DataObject();
this.ADataObject.Name = "Hello!";
this.DataContext = this.ADataObject;
}
}
}
DataObject.cs:
namespace WpfDatabinding
{
public class DataObject
{
// convert this to a field, and databinding will stop working
public string Name
{
get;
set;
}
}
}
posible duplicado de [¿Debería usar las propiedades de acceso dentro de la clase, o solo desde fuera de la clase?] (Http://stackoverflow.com/questions/476021/should-you-use-accessor-properties-from -dentro de la clase-o-justo-desde-fuera-o) – nawfal