2011-11-16 101 views
0

我在XAML中有一些frameworkElements,我定义了一些属性,如背景和光标。是否有可能重新加载UserControl的XAML属性?

在后面的代码中,我更改了这些属性,并且当事件触发时,我想重新加载这些在XAML中定义的初始属性。这是可能的,或者我需要在后面的代码中手动重新编写吗?

谢谢。

回答

0

在XAML中定义的控件本质上定义了一个实例。一旦你有了实例,对象就像你处理的其他对象一样。在后面的代码中访问在XAML中定义的实例类似于在代码后面创建一个新对象,然后在运行时调整其属性。

当你想要改变属性值;你不会恢复你的财产变化,你只需要改变他们的想法。

0

我建议调查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> 

当然,你必须确定你的用户控件背后的IsLoadingIsValid属性,他们在你设置为真/假在适当的时间代码隐藏。

相关问题