2009-08-26 84 views
4

對於一些用戶控件,我有這樣的結合:如何綁定到「X:靜」在資源代碼隱藏在WPF

AppLanguage="{Binding Path=ApplicationLanguage, Source={x:Static Application.Current}}" 

這適用於該聲明/實例化XAML控制。但是,我有一個只能動態實例化的控件(它不會經常使用,所以我不希望一個實例(實際上最多3個)一直佔用內存,現在,我錯過了一些東西,我必須在代碼隱藏中聲明我的綁定。當我有一個簡單的(ElementName + Path)時,這很好,但在上面的例子中,我不知道如何在代碼隱藏中編寫它

當然,在這種特殊情況下,控件可以簡單地引用My.Application.ApplicationLanguage,但試圖做到這一點讓我好奇,我做了大量的搜索並找不到任何類似的東西(可能是我的搜索關鍵字:))

回答

5

x:Static剛剛爲您解決了一個static成員,所以你可以wr作爲伊特:

var binding = new Binding("ApplicationLanguage"); 
binding.Source = Application.Current; 

這麼說,我不跟隨爲什麼你認爲你需要做到這一點的代碼。

+0

那工作 - 謝謝。我在雙引號之間添加Application.Current(實際上我不知道這是否會奏效 - 我遇到了另一個由事件引發的問題 - 現在全部修復了。) 我在代碼隱藏中這樣做是因爲我認爲)如果我把它放在容器中的XAML中,用戶控件就會被實例化。我可能在這裏錯過了一些東西 - 我仍然在探索WPF,所以有些事情並不總是很明顯。 :) – MetalMikester 2009-08-26 13:16:00