是否可以重新加载UserControl的XAML属性?
本文关键字:UserControl XAML 属性 加载 新加载 是否 | 更新日期: 2023-09-27 18:14:44
我在XAML中有一些frameworkelement,我定义了一些属性,如背景和光标。
在后面的代码中,我更改了这些属性,当事件触发时,我希望重新加载这些在XAML中定义的初始属性。这是可能的还是我需要在代码后面手动重新定义?谢谢。
在XAML中定义的控件实际上定义了一个实例。一旦有了实例,该对象就像您处理的其他对象一样。在后台代码中访问XAML中定义的实例类似于在后台代码中创建一个新对象,然后在运行时调整其属性。
当你想改变属性值时;您不需要恢复您的属性更改,您只需将它们更改为您想要的。
我建议查看DataTriggers
,以便根据某些值进行临时更改。这将在特定条件为真时改变属性的值,并在条件为假时将其恢复为原始值。
例如,下面的样式将在加载时将光标更改为等待光标,并在背景无效时将其更改为红色。
<Style TargetType="{x:Type local:MyUserControl}">
<Setter Property="Cursor" Value="Arrow" />
<Setter Property="Background" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsLoading}" Value="True">
<Setter Property="Cursor" Value="Wait" />
</DataTrigger>
<DataTrigger Binding="{Binding IsValid}" Value="True">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
当然,您必须在UserControl后面定义IsLoading
和IsValid
属性,并在代码后面的适当时间将它们设置为true/false。