如果我不向String屬性添加顯式訪問器,那麼數據綁定不起作用。這是爲什麼? 下面是一個簡單的例子,其中一個文本框被連接到一個String屬性。爲什麼數據綁定源需要一個明確的getter?
MainPage.xaml中:
<Grid Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Text="{Binding Message} />
</Grid>
而後面的代碼:
public String Message;
public MainPage()
{
InitializeComponent();
Message = "Hello World";
DataContext = this;
}
這不起作用,文本框爲空。
但是,添加屬性訪問器;
public String Message { get; set; };
現在它的工作。
我看不到這在MSDN Data Binding解釋。有人可以解釋嗎?不要屬性有一個implict set/get訪問器?即便如此,爲什麼數據綁定只能訪問該屬性?
感謝,
@Slaks,@devdigital和@Matti_Virkkunen:你們都有相同的答案,但事實證明都是不太正確的..大家都明確了我一個字段和屬性之間的區別 - 我並沒有意識到這一點。這使我得到了正確的答案:當涉及路徑時,綁定只能用於屬性**,否則它可以直接訪問字段。例如:上面是'DataContext = Message;'然後''確實有效!所以使用路徑需要訪問器。 [MSDN](http://msdn.microsoft.com/en-us/library/system.windows.data.binding.source(V = VS.95)的.aspx) –
peterept
2012-02-13 09:27:12