Как я могу изменить значение статического ресурса WPF во время выполнения?Изменение значения статического ресурса wpf
У меня есть следующие ресурсы
<UserControl.Resources>
<sys:String x:Key="LengthFormat">#.# mm</sys:String>
<sys:String x:Key="AreaFormat">#.# mm²</sys:String>
<sys:String x:Key="InertiaFormat">#.# mm⁴</sys:String>
</UserControl.Resources>
который некоторые TextBlocks ссылки
<TextBlock Grid.Row="2" Grid.Column="1"
Text="{Binding Path=Breadth, StringFormat={StaticResource ResourceKey=LengthFormat}}" />
затем в зависимости от объекта, который будет связан с контролем я хотел бы изменить форматы. Я создал свойство в элементе управления следующим образом:
public string LengthFormat
{
set
{
this.Resources["LengthFormat"] = value;
}
}
public string AreaFormat
{
set
{
this.Resources["AreaFormat"] = value;
}
}
public string InertiaFormat
{
set
{
this.Resources["InertiaFormat"] = value;
}
}
затем перед привязкой я установить каждую строку.
Однако это не сработает, кто-нибудь предлагает whynot?
Cheers
Я получаю сообщение об ошибке: Ошибка 4 «Свойство DynamicResourceExtension» не может быть установлено в свойстве «StringFormat» типа «Связывание». «DynamicResourceExtension» может быть установлен только в DependencyProperty объекта DependencyObject. –
ohh Правильно, имеет смысл. В этом случае вы не сможете применить мое решение. Он будет работать только для DependencyProperty –