gpt4 book ai didi

c# - 更改 wpf 静态资源的值

转载 作者:太空狗 更新时间:2023-10-29 21:35:41 25 4
gpt4 key购买 nike

如何在运行时更改 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>

一些文本 block 引用

<TextBlock Grid.Row="2" Grid.Column="1" 
Text="{Binding Path=Breadth, StringFormat={StaticResource ResourceKey=LengthFormat}}" />

然后根据要绑定(bind)到控件的对象,我想更改格式。我在控件中设置了如下属性:

public string LengthFormat
{
set
{
this.Resources["LengthFormat"] = value;
}
}
public string AreaFormat
{
set
{
this.Resources["AreaFormat"] = value;
}
}
public string InertiaFormat
{
set
{
this.Resources["InertiaFormat"] = value;
}
}

然后在绑定(bind)之前我设置每个字符串。

但是它不起作用,有人建议为什么不呢?

干杯

最佳答案

实际上它工作得很好。但是 UI 没有更新,因为没有观察到资源键。

如果您想要可以更改的绑定(bind),则不应使用静态资源。请改用常规绑定(bind),在属性上使用 INotifyPropertyChanged,允许 UI 观察更改。

关于c# - 更改 wpf 静态资源的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com