2013-02-06 97 views
0

我有類:如何更新樣式的內容?

class NoExp : Expander 
{ 
    public long Id { get; set; } 
    public string btnBackGround { get;set;} 
    public bool btnEnabled { get; set; } 
    public string btnForeground { get; set; } 
    public string tbText { get; set; } 
    public string tbTime { get; set; } 
    public string tbNumber { get; set; } 
    public string tbForeground { get; set; } 
    public ServiceReference.PickerItemItem[] DGItemSource { get; set; }} 

和樣式:

<Style x:Key="ExpanderStyle" TargetType="{x:Type local:NoExp}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type local:NoExp}"> 
        <Grid> 
         <Button Content="Собран" Height="35.5" Margin="5,0,1,0" VerticalAlignment="Top" 
           Foreground="{Binding btnForeground, RelativeSource={RelativeSource TemplatedParent}}" 
           Background="{Binding btnBackGround, RelativeSource={RelativeSource TemplatedParent}}" 
           IsEnabled="{Binding btnEnabled, RelativeSource={RelativeSource TemplatedParent}}" 
           Tag="{Binding Id, RelativeSource={RelativeSource TemplatedParent}}" 
           Style="{DynamicResource ButtonStyle1}" Click="Button_Click_1"/> 

在代碼中,我試圖改變:

foreach (NoExp exp in listBox.Items) 
       { 
        exp.btnForeground = "#808080"; 
       } 

數據的變化,但在界面上沒有變化。請告訴我應該怎麼做。

+0

分配風格忘了。當創建一切工作,因爲它應該。更新出現問題。 – Kirill

回答

0

你看過處理可觀察集合嗎?

當設置屬性時,您的實體需要繼承INotifyPropertyChanged並調用NotifyPropertyChanged。假設你的實體對象包含在一個ObservableCollection中,你的控件綁定到所有東西都會更新。

我在Silverlight中成功地在PivotViewer中使用了它。

瞭解更多: Silverlight Databinding – The Observable Collection

+0

它的工作原理!謝謝! – Kirill