Beispiel #1
0
        //...

        protected virtual void Bind(TreeViewColumn column, ColumnDefinition definition)
        {
            definition.Bind(ColumnDefinition.MaxWidthProperty,
                            nameof(TreeViewColumn.MaxWidth), column);
            definition.Bind(ColumnDefinition.MinWidthProperty,
                            nameof(TreeViewColumn.MinWidth), column);
        }
Beispiel #2
0
 public static ColumnDefinition BindWidthColumnDefinition(this ColumnDefinition self,
                                                          string path,
                                                          BindingMode mode          = BindingMode.Default,
                                                          IValueConverter converter = null,
                                                          object converterParameter = null,
                                                          string stringFormat       = null,
                                                          object source             = null,
                                                          object targetNullValue    = null,
                                                          object fallbackValue      = null)
 => self.Bind(ColumnDefinition.WidthProperty, path, mode, converter, converterParameter, stringFormat, source, targetNullValue, fallbackValue);
Beispiel #3
0
        protected override ColumnDefinition GetColumnDefinition(ContentPresenter Child, int Index)
        {
            var Result = base.GetColumnDefinition(Child, Index);

            var TreeViewItem = PART_TreeViewItem ?? this.GetParent <TreeViewItem>();

            if (TreeViewItem == null)
            {
                throw new InvalidOperationException("TreeViewRowHeader must be hosted in a control that inherits TreeViewItem.");
            }

            var TreeView = PART_TreeView ?? TreeViewItem.GetParent <TreeView>();

            try
            {
                if (TreeView is TreeViewExt && TreeView.As <TreeViewExt>().Columns.Count > 0 && Index < TreeView.As <TreeViewExt>().Columns.Count)
                {
                    var Column = TreeView.As <TreeViewExt>().Columns[Index];

                    Result = new ColumnDefinition();

                    var NodeDepth = TreeViewItem.GetDepth();

                    var a = Index == 0 ? new TreeViewColumnGridLengthConverter(ColumnOffset) : null;
                    var b = Index == 0 ? new TreeViewColumnDoubleConverter(ColumnOffset) : null;
                    var c = Index == 0 ? new TreeViewColumnDoubleConverter(ColumnOffset) : null;

                    var n = Index == 0 ? NodeDepth.ToDouble() as object : null;

                    Result.Bind(ColumnDefinition.WidthProperty, Column, "Width", a, n, BindingMode.OneWay, UpdateSourceTrigger.PropertyChanged);
                    Result.Bind(ColumnDefinition.MinWidthProperty, Column, "MinWidth", b, n, BindingMode.TwoWay, UpdateSourceTrigger.PropertyChanged);
                    Result.Bind(ColumnDefinition.MaxWidthProperty, Column, "MaxWidth", c, n, BindingMode.TwoWay, UpdateSourceTrigger.PropertyChanged);

                    Child.Bind(ContentPresenter.MarginProperty, Column, "ContentMargin");
                }
            }
            catch
            {
                Result = null;
            }

            return(Result);
        }
Beispiel #4
0
        //...

        protected override void Bind(TreeViewColumn column, ColumnDefinition definition)
        {
            base.Bind(column, definition);
            definition.Bind(ColumnDefinition.WidthProperty, nameof(TreeViewColumn.Width), column, BindingMode.OneWay);
        }