我花了一段時間嘗試了很多不同的方法來解決我遇到的問題,但都無濟於事,所以我希望這裏有人能夠提供幫助。從類型轉換器訪問綁定?
我有一個帶雙向綁定的文本框元素,它利用類型轉換器將字符串的值轉換爲自定義數據類型,例如MyCustomType
。這工作正常,但是由於項目需求的變化,我現在需要在轉換之前執行額外的處理。
但是,爲了執行這個額外的處理,我需要能夠訪問「源」文本框或綁定上下文。我無法訪問這兩者。
有沒有什麼辦法從類型轉換器的ConvertFrom()
方法訪問源文本框?
我試圖使用ITypeDescriptorContext
參數(WPF)傳遞給ConvertFrom()
方法,但是其中的大多數屬性均爲null。
即
public class MyCustomTypeConverter : TypeConverter
{
...
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
// Context is
return new MyCustomType(value);
}
...
}
我已經使用MultiValueConverter
,並且完全避免了類型轉換器也試過,但是這導致了額外的代碼LOT,和並沒有真正的幫助。我寧願避免走這條路,因爲類型轉換器更優雅。
任何意見/援助將不勝感激! :)
爲什麼你要訪問的約束力?可能是有其他的方式 – Nitin
我不認爲它有可能從TypeConverters訪問綁定。他們必須在DataLayer上運行,似乎也是很多不必要的工作。如果你更新了這個問題,那麼人們可以很容易地幫助你解決問題。 –
@Nitin,我試圖訪問源文本框,以便我可以將它傳遞給另一個方法(作爲參考),以便我可以在驗證失敗時執行特定的任務。 這不一定是實現這一目標的最佳方式,但是項目的要求在開發階段的相當晚的時候已經發生了變化,這是一種功能性的,暫時性的解決方案。 (當我得到一些時間的時候,我的重構列表中的值很高)。 謝謝你們的迴應。 – XtraSimplicity