簡體   English   中英

XAML數據綁定未更新

[英]XAML databinding not updating

只需要一些數據綁定的幫助。

所以我有一個自定義對象的ObservableCollection。 對象的屬性如下所示:

    /// <summary>
    /// Name
    /// </summary>
    private string _name;
    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            if (value != _name)
            {
                _name = value;
                NotifyPropertyChanged("Name");
            }
        }
    }        

    /// <summary>
    /// Status
    /// </summary>
    private int _status;
    public int Status
    {
        get
        {
            return _status;
        }
        set
        {
            if (value != _status)
            {
                _status = value;
                NotifyPropertyChanged("Status");
            }
        }
    }

    /// <summary>
    /// Visible information
    /// </summary>
    private Visibility _visible;
    public Visibility Visible
    {
        get
        {
            return _visible;
        }
        set
        {
            if (value != _visible)
            {
                _visible = value;
                NotifyPropertyChanged("Visible");
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(String propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (null != handler)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

基本上我有三個TextBlock,其中前兩個將Text綁定到Name和Status,而第三個具有:

Visibility = {Binding Visible}

但是,只要想切換可見性屬性,就只能將其從“可見”狀態切換為“折疊”,然后再不切換。 我的切換如下所示:

            ItemViewModel l = ((sender as LongListSelector).SelectedItem) as ItemViewModel;
            MessageBox.Show(l.Visible.ToString());
            if (l.Visible == Visibility.Collapsed)
                l.Visible = Visibility.Visible;
            else
                l.Visible = Visibility.Collapsed;

注意:ItemViewModel是集合的自定義類,即。

ObservableCollection<ItemViewModel>

顯然,這只是一個粗略的測試,但仍然行不通。 無論項目的實際可見性狀態如何,消息框始終顯示“可見”。 value of Visibility? 我如何獲得它才能獲得可見性的價值?

如果有人有任何想法,那將是很棒的。

謝謝。

編輯:為清楚起見,為文本塊添加XAML:

<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="20"/>
<TextBlock Text="{Binding Status}" TextWrapping="Wrap" Margin="12,-6,280,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
<TextBlock x:Name="t1" Text="Test for visibility" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}" Visibility="{Binding Visible}"/>

請記住,這些文本塊包含在堆棧面板和longlistselector中,因此只需更改t1.Visible就可以了。

經過更多研究后,問題最終在於該屬性是由另一個代碼分支設置的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM