UI(XAML)不更新属性但在ViewModel中触发propertyChanged

时间:2015-01-05 13:54:31

标签: c# wpf xaml windows-phone-8 mvvm

我在更新Windows Phone 8中的XAML时遇到了一个问题...属性在XAML中使用viewModel绑定,触发了propertyChange并更改了属性的值。但XAML中的属性成员只在开始时更新一次,因为它不会更新XAML中的任何内容......虽然属性在ViewModel中继续更改....属性属于观察集合的LIST,最后是观察集合绑定到LongListSelector

我已将绑定模式更改为“双向”但无用,我已粘贴下面的代码。

期待寻求帮助。

视图模型:

    private string _description;
    public string description
    {
        set
        {
            _description = value;
            RaisePropertyChanged("_description");
        }
        get
        {
            return _description;
        }
    }

    private double _progress_bar_Value;
    public double progress_bar_Value
    {
        set
        {
            _progress_bar_Value = value;
            RaisePropertyChanged("_progress_bar_Value");
        }
        get
        {
            return _progress_bar_Value; //= ProfileSetting.ProfileTab_DOB;

        }
    }



    private double _Total_Bytes;
    public double Total_Bytes
    {
        set
        {
            _Total_Bytes = value;
            RaisePropertyChanged("_Total_Bytes");
        }
        get
        {
            return _Total_Bytes;

        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void RaisePropertyChanged(string propertyName)
    {
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

XAML:

`

                                    >
                <phone:LongListSelector.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="0,0,0,0" Orientation="Vertical" 
                                    >
                            <TextBlock Text="{Binding description}"
                                       FontSize="18"
                                       TextWrapping="Wrap"
                                       Foreground="White" x:Name="Totalsize"
                                       />
                            <ProgressBar x:Name="Download_progressBar" 
                                         IsIndeterminate="False" 
                                         Maximum="100" 
                                         Height="10" 
                                         Width="400" 
                                         Value="{Binding progress_bar_Value}"
                                         Foreground="White"
                                         />
                            <TextBlock Text="{Binding Bytes_received}"
                                       FontSize="18"
                                       TextWrapping="Wrap"
                                       Foreground="White"
                                       x:Name="Total_received"
                               />
                        </StackPanel>
                    </DataTemplate>
                </phone:LongListSelector.ItemTemplate>
            </phone:LongListSelector>`

1 个答案:

答案 0 :(得分:0)

在公共财产而不是支持字段上提高属性(由@HighCore评论)