我知道這是一個古老的問題,但也許這會對遇到它的人有用。我找到了解決辦法是如下:
public class WattHoursConverter : FrameworkElement, IValueConverter
{
#region Unit (DependencyProperty)
/// <summary>
/// A description of the property.
/// </summary>
public string Unit
{
get { return (string)GetValue(UnitProperty); }
set { SetValue(UnitProperty, value); }
}
public static readonly DependencyProperty UnitProperty =
DependencyProperty.Register("Unit", typeof(string), typeof(WattHoursConverter),
new PropertyMetadata("", new PropertyChangedCallback(OnUnitChanged)));
private static void OnUnitChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((WattHoursConverter)d).OnUnitChanged(e);
}
protected virtual void OnUnitChanged(DependencyPropertyChangedEventArgs e)
{
}
#endregion
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// you can use the dependency property here
...
}
}
,並在您的XAML:
<UserControl.Resources>
<converters:WattHoursConverter x:Key="WattHoursConverter" Unit="{Binding UnitPropFromDataContext}"/>
</UserControl.Resources>
....
<TextBlock Grid.Column="1" TextWrapping="Wrap" Text="{Binding TotalCO2, Converter={StaticResource KgToTonnesConverter}}" FontSize="13.333" />
+1的另一種方法。 – iMatoria 2011-09-05 10:52:18
轉換器是否從`DependencyObject`繼承?我正在創作一個自定義控件,我需要根據控件中的另一個屬性來格式化綁定的對象。 – Shimmy 2012-02-22 21:43:10
「將整個綁定對象傳遞給轉換器」是什麼意思? – 2012-11-18 00:16:06