Если вы хотите, чтобы этот элемент мог быть привязан к данным в Winform или WPF, я считаю, что вам нужно объявить его как свойство. Я на 95 процентов уверен, что для привязки данных требуется свойство (синтаксис получения / установки). У меня есть небольшое решение wpf, которое демонстрирует это, но я не вижу способа прикрепить его здесь.
Вот код: (построен с VS 2008 SP1, ориентирован на .net 3.5 - я использовал проект WPF).
В проекте WPF есть 2 элемента: главное окно (window1) и объект, который мы тестируем (DataObject)
В окне есть метка, привязанная к свойству Name в экземпляре объекта данных. Если вы преобразуете свойство Name в поле (удалите метод получения / установки), привязка данных перестанет работать.
Window1.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;
}
}
}