Click to See Complete Forum and Search --> : Is it possible to bind to a field?


kender_a
November 18th, 2009, 02:44 AM
Colleagues,

I have a text box which binds to data:
<TextBox x:Name="textBox1" Text="{Binding Path=Comments}" Width="200" Margin="0,4" />
If Comments is declared as a property, the binding works:
public int Comments { get; set; }
However, if Comments is declared as a field, the binding doesn’t work:
public int Comments;
I haven’t seen an example where a control was bound to a field, but I haven’t seen any indication that it’s a bad practice or not possible.

- Nick

boudino
November 18th, 2009, 03:28 AM
As far as I know, it is not possible to bind to field. The purpose is simple: fields are implementation details, not parts of object's contract. Making field accessible from outside the class breaks encapsulation, so is bad practice. Despite the fact that there is not way how to let clients of the field know e.g. that the value changed.

Arjay
November 18th, 2009, 09:39 AM
It isn't possible.