0
只需要一些數據綁定的幫助。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));
}
}
,基本上我有三個的TextBlocks,其中前兩個都有文字綁定到名稱和狀態,而第三個具有:
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>
顯然這只是一個粗略的測試,但仍然不起作用。無論項目的實際可見性狀態如何,消息框始終顯示「可見」。我怎樣才能得到real可見性的值?
如果有人有任何想法,那就太好了。
謝謝。
編輯:添加XAML爲的TextBlocks爲清楚:
<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}"/>
記住這些的TextBlocks是一個StackPanel內包裹和longlistselector如此簡單地改變t1.Visible是出了問題。
你可以發佈第三個文本框的整個XAML嗎? – CodingGorilla
已添加到原始文章,因此更引人注目 – Travv92
您的調試msgbox的行爲是否像您所期望的那樣? –