2012-01-25 105 views
0

是否可以從xaml更改屬性值?是否可以更改xaml的值?

試想一下,我們其中有一個屬性是用戶控件已初始化

public class MyUserControl : UserControl 
{ 
    ... 
    public SomeClass MainWindow 
    { 
     get 
     { 
       return _someClass ?? (_someClass = new SomeClass();) 
     } 
    } 
} 

現在是有可能改變SomeClass的財產,而不從XAML初始化它,沒有動畫?

爲什麼XAML不允許的語法來寫<UserControl.MainWindow.Property>

回答

1

添加一個設置的財產,並允許XAML根據其需要創建自己的SomeClass的 - 這就是現在通常做。

XAML是聲明性語言,它並不試圖成爲圖靈完成或類似的東西,它只是描述了創建對象的

當然,有一個extreme solution。但請,不要這樣做。爲了你和其他人的:)

編輯:

另一種解決辦法是建立在用戶控件新屬性,這個屬性SomeClass的(set{ this._someClass.someProperty = value; })的特性同步。如果您在UserControl的XAML聲明中設置此屬性,則更改將傳播到_someClass成員。

當然包裝物業將不得不依賴屬性,如果你想綁定到包裹財產。

+0

你確定沒有辦法改變道具價值嗎?確定在xaml中編寫代碼並不是很好的解決方案,我可以在我的UserControl中執行相同的操作,我只是感興趣的是有沒有其他的方式從xaml,我發現動畫做這個,但尋找另一個解決方案 –

+0

@ArsenMkrt看到我的編輯。 –

+0

謝謝你的發帖,我想你是對的,真的沒有別的辦法,但它可能是有價值的未來,因爲只要我能賦予財產價值,就有能力給予內在財產的價值也是合乎邏輯的 –

0

一,你需要有一套改變價值。二,在XAML中綁定到TwoWay。

+0

我不想改變參考SomeClass的@BalamBalam,我想在SomeClass的改變屬性具有setter方法 –

+0

你嘗試參照使用綁定路徑的屬性名稱? – Paparazzi

+0

我不希望ti綁定到那個屬性,我想給xaml例如靜態值:) –

相關問題