我已經創建了我的派生AutoCompleteBox控制一個DependencyProperty - > IsReadOnly使用結合一個轉換器,帶一個DependencyProperty
從那裏,我試圖通過轉換器來設定值(T/F)。基於轉換器值,我想更新DependencyProperty的setter中嵌套的TextBox樣式。顯式設置XAML中的屬性(IsReadOnly =「True」)可以正常工作,並且setter觸發並更新樣式。但是,通過轉換器進行此操作不會觸發DependencyProperty的setter。我似乎在這裏有麻煩粘貼代碼段(第一次海報)..所以我會盡我所能,給通過運行一個簡單的代碼:
物業上AutoCompleteBox:
IsReadOnly =「{結合轉換器= {StaticResource IsReadOnlyVerifier},ConverterParameter ='Edit Client'}「
調用轉換器,根據用戶的權限返回true或false。但是,這不會調用註冊的DependencyProperty的setter。
.. 設置
{
if (value)
{
var style = StyleController.FindResource("ReadOnlyTextBox") as Style;
TextBoxStyle = style;
}
else
{
TextBoxStyle = null;
}
SetValue(IsReadOnlyProperty, value);
}
+1:Classic確實...我們應該有一個剪切/粘貼的答案,因爲這個經常出現:) –
+1:我看到了幾個例子,處理這樣的PropertyChangedEvent ..我想我可以「智能」,只需在DP設置器中執行樣式設置邏輯即可。用查理辛 - 雙贏!謝謝。 –