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";
                }

数据有变化,但界面没有变化。请告诉我应该怎么做。

4

1 回答 1

0

您是否考虑过使用可观察的集合?

您的实体需要继承 INotifyPropertyChanged 并在设置属性时调用 NotifyPropertyChanged。假设您的实体对象包含在 ObservableCollection 中,您的控件绑定到所有内容都会更新正常。

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

阅读更多: Silverlight 数据绑定 – 可观察集合

于 2013-02-06T12:42:06.537 回答