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 に答える