Jak zmienić wartość statycznego zasobu WPF w środowisku wykonawczym?Zmiana wartości statycznego zasobu wpf
mam następujące zasoby
<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>
których niektóre TextBlocks odwoływać
<TextBlock Grid.Row="2" Grid.Column="1"
Text="{Binding Path=Breadth, StringFormat={StaticResource ResourceKey=LengthFormat}}" />
następnie w zależności od obiektu, który ma być związany z kontrolą chciałbym zmienić formaty. mam skonfigurować właściwości w kontroli, co następuje:
public string LengthFormat
{
set
{
this.Resources["LengthFormat"] = value;
}
}
public string AreaFormat
{
set
{
this.Resources["AreaFormat"] = value;
}
}
public string InertiaFormat
{
set
{
this.Resources["InertiaFormat"] = value;
}
}
następnie przed wiążące i ustawić każdy łańcuch.
Jednak to nie działa, każdy sugeruje whynot?
Pozdrowienia
Pojawia się komunikat o błędzie: Błąd 4 Nie można ustawić właściwości 'DynamicResourceExtension' dla właściwości StringFormat typu "Binding". "DynamicResourceExtension" można ustawić tylko na DependencyProperty z DependencyObject. –
ohh Dobrze, ma sens. Nie będziesz w stanie zastosować mojego rozwiązania w tym przypadku. Będzie działać tylko dla DependencyProperty –