Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t通过绑定(WP8)从代码隐藏更新元素的可见性_C#_Windows Phone 8 - Fatal编程技术网

C# Can';t通过绑定(WP8)从代码隐藏更新元素的可见性

C# Can';t通过绑定(WP8)从代码隐藏更新元素的可见性,c#,windows-phone-8,C#,Windows Phone 8,XAML: 当属性发生更改时,必须引发PropertyChanged事件,否则绑定将不会更新。您的BindingBase类实现了INotifyPropertyChanged,您可以/应该使用它来通知视图 () 您的财产应如下所示: public class RegionTree : BindableBase { public bool IsFirstLayer { get; set; } public bool IsSecondLayer { get; set; } pu

XAML:


当属性发生更改时,必须引发PropertyChanged事件,否则绑定将不会更新。您的
BindingBase
类实现了
INotifyPropertyChanged
,您可以/应该使用它来通知视图

()

您的财产应如下所示:

public class RegionTree : BindableBase
{
    public bool IsFirstLayer { get; set; }
    public bool IsSecondLayer { get; set; }
    public bool IsThirdLayer { get; set; }
    public Visibility VisibilityOption { get; set; }
    public string Name;
    public string Code;
    public string RUName;
    public string SWNE;
    public string DisplayedName
    {
        get
        {
            if (Thread.CurrentThread.CurrentUICulture.ToString() == "ru-RU" && RUName != null)
            {
                return RUName;
            }
            else { return Name; }
        }
    }
}

这不是添加属性的正确方法,您必须使用
OnPropertyChanged(“VisibilityOption”)
才能更新
集中的UI
。只需修改该属性即可。您是否有VisibilityOption属性?@vits,在RegionTree类中?当然更重要的是,若我在默认情况下将其设置为折叠,那个么UI中将不会显示任何内容。问题是,如果我更新这个属性,UI根本不会改变。你能添加你的属性代码吗?@vits,添加了整个类结构。
private void FilterBtn_Click(object sender, RoutedEventArgs e)
    {
        var allRegions = (RegionList.ItemsSource as ObservableCollection<RegionTree>);
        foreach (var region in allRegions)
        {
            if (region.DisplayedName.IndexOf(RegionFilter.Text) >= 0)
            {
                region.VisibilityOption = Visibility.Visible;
            }
            else
            {
                region.VisibilityOption = Visibility.Collapsed;
            }
        }
        RegionList.ItemsSource = allRegions;
    }
public class RegionTree : BindableBase
{
    public bool IsFirstLayer { get; set; }
    public bool IsSecondLayer { get; set; }
    public bool IsThirdLayer { get; set; }
    public Visibility VisibilityOption { get; set; }
    public string Name;
    public string Code;
    public string RUName;
    public string SWNE;
    public string DisplayedName
    {
        get
        {
            if (Thread.CurrentThread.CurrentUICulture.ToString() == "ru-RU" && RUName != null)
            {
                return RUName;
            }
            else { return Name; }
        }
    }
}
public Visibility VisibilityOption
{
  get { return _visibilityOption; }
  set
  {
    if (_visibilityOption != value)
    {
      _visibilityOption = value;
      OnPropertyChanged("VisibilityOption");
    }
  }
}
public Visibility VisibilityOption { get; set; }