Как связать независимое свойство Text с Application.Current.Resources? - PullRequest
0 голосов
/ 03 мая 2011

Как связать свойство Text для независимой зависимости с Application.Current.Resources с использованием XAML?

Я хочу использовать элемент управления в сторонней dll, которая имеет свойство Text для независимой зависимости, и я хочу привязать приложение.Current.Resources для этого свойства.

Он не может использовать расширение DynamicResource, потому что это свойство вне зависимости.

Что мне делать?

1 Ответ

0 голосов
/ 03 мая 2011

Предполагая, что вы просто хотите отобразить значение Resources в свойстве Text стороннего элемента управления, вы можете заключить свойство Text из стороннего элемента управления в присоединенное свойство WPF и связать / использовать DynamicResource дляэто.

public static readonly DependencyProperty TextWrappedProperty = 
                           DependencyProperty.RegisterAttached("TextWrapped",
                                 typeof(string), typeof(ThirdPartyControl),
                                 new PropertyMetadata(false, TextWrappedChanged));

public static void SetTextWrapped(DependencyObject obj, string wrapped)
{
    obj.SetValue(TextWrappedProperty, wrapped);
}

public static string GetTextWrapped(DependencyObject obj)
{
    return (string)obj.GetValue(TextWrappedProperty);
}

private static void TextWrappedChanged(DependencyObject obj, 
                                             DependencyPropertyChangedEventArgs e)
{
    // here obj will be the third party control so cast to that type
    var thirdParty = obj as ThirdPartyControl;

    // and set the value of the non dependency text property
    if (thirdParty != null)
        thirdParty.Text = e.NewValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...