2011-11-16 98 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屬性,他們在你設置爲真/假在適當的時間代碼隱藏。

相關問題