Как выполнить привязку с динамическим ресурсом и указать путь

Я хочу выполнить привязку к ресурсу (DynamicResource) и получить доступ к свойствам этого ресурса, но есть ли способ сделать это?

(Я хочу визуализировать значения по умолчанию из конструктора в редакторе xaml в Visual Studio. Их нельзя увидеть при ссылке на объект через DataContext или через свойство, добавленное в мой класс Window ...)

Не работает xaml: (работает в композиторе, но не во время выполнения ...)

<Window ... >
    <Window.Resources>
        <local:MyClass x:Key="myResource"  />
    </Window.Resources>
    <StackPanel>
        <Button Content="{Binding Source={DynamicResource myResource} Path=Property1}" />
        <Button Content="{Binding Source={DynamicResource myResource} Path=Property2}" />
    </StackPanel>
</Window>

с классом (который, вероятно, должен реализовать INotifyPropertyChanged):

public class MyClass 
{
    public MyClass()
    {
        this.Property1 = "Ok";
        this.Property2 = "Cancel";
    }
    public string Property1 { get; set; }
    public string Property2 { get; set; }
}
9
задан erikH 30 August 2010 в 09:08
поделиться

1 ответ

Это потому, что расширение разметки DynamicResource можно использовать только для свойства зависимости, потому что ему нужно будет обновить его, если ресурс изменится. И Binding.Source не является свойством зависимости...

В качестве обходного пути вы можете установить DataContext кнопки с DynamicResource :

<Button DataContext="{DynamicResource myResource}" Content="{Binding Path=Property1}" />
<Button DataContext="{DynamicResource myResource}" Content="{Binding Path=Property2}" />
20
ответ дан 4 December 2019 в 09:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: