Как разрешить значение привязки данных внутри MarkupExtension?

Я сделал расширение разметки для перевода строк на основе ключа. пример

<TextBlock Text="{Translate myKey}" />

Теперь я хочу иметь возможность использовать вложенные привязки для предоставления моих ключей. Пример:

<TextBlock Text="{Translate {Binding KeyFromDataContext}}" />

Когда я делаю это, я получаю объект System.Windows.Data.Binding. Вызвав ProvideValue и передав ServiceProvider, я могу получить BindingExpression:

var binding = Key as Binding;
if (binding == null) {
    return null;
}
var bindingExpression = binding.ProvideValue(_serviceProvider) as BindingExpression;
if (bindingExpression == null) {
    return null;
}
var bindingKey = bindingExpression.DataItem;

Я могу получить это bindingExpression, но свойство DataItem имеет значение null. Я проверил мою привязку, как это

<TextBlock Text="{Binding KeyFromDataContext}" />

и работает нормально.

Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос