没有 XAML 的绑定可见性

本文关键字:可见性 绑定 XAML 没有 | 更新日期: 2023-09-27 18:32:54

我对WPF很陌生,尤其是DataBinding,我很难理解如何在没有XAML的情况下对其进行编码。如何在没有 XAML 的情况下将父可见性(父级是 scrollViewer)绑定到其子可见性(子级是网格)?这是我现在正在尝试做的事情:

{
//Code that creates grid
//Code that creates scrollViewer
    scrollViewer.Content = grid;
    LayoutRoot.Children.Add(scrollViewer); //adding it to the main window
//Creating binding
    Binding myBinding = new Binding("Vis");
    BooleanToVisibilityConverter c = new BooleanToVisibilityConverter();
    myBinding.Source = grid.Visibility;
    myBinding.Converter = c;
    myBinding.Mode = BindingMode.TwoWay;
    myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
    BindingOperations.SetBinding(scrollViewer, VisibilityProperty, myBinding);
}

这是我现在的"Vis"是什么:

public Visibility Vis
{
    get
    {
        return Visibility;
    }
    set
    {
        Visibility = value;
        OnPropertyChanged(Visibility);
    }
}

当然,现在问题OnPropertyChanged,它给了我一个错误,我需要把DependencyPropertyChangedEventArgs放进去,但我不知道该怎么做。我不确定,我这样做是否正确(也许这可以简化?),或者即使修复了此错误,我的方法也根本不起作用。我需要它没有 XAML,因为控件是动态创建的。

没有 XAML 的绑定可见性

PieterWitvoet提供的解决方案对我有用。我必须设置scrollViewer可见性以Visibility.Visible它的创建,但其他一切都很好。