Silverlight:在DependencyProperty中包装非DependencyProperty

时间:2009-07-22 02:30:13

标签: c# .net silverlight properties

我希望能够将绑定添加到DataGridTextColumn的某些属性(即宽度,排序顺序等),但似乎这些属性不是DependencyPropertys,因此它们无法绑定。另一个答案建议继承DataGridTextColumn以将这些属性公开为DependencyPropertys,但是我似乎无法找到有关如何执行此操作的任何信息。

谢谢, 罗伯特

2 个答案:

答案 0 :(得分:0)

试试这个:

public class BindableGridColumn : DataGridTextColumn
    {
        public DataGridLength BindableWidth
        {
            get { return Width; }
            set { 
                  SetValue(BindableWidthProperty, value);
                  Width = value; 
                }
        }

        // Using a DependencyProperty as the backing store for BindableWidth.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty BindableWidthProperty =
            DependencyProperty.Register("BindableWidth", typeof(DataGridLength), typeof(BindableGridColumn), new PropertyMetadata(DataGridLength.Auto));
    }

答案 1 :(得分:0)

在Silverlight中,只有FrameworkElement(不是DependencyObject)的子类可以有DependencyProperty个。所以不可能直接绑定到DataGridColumn的属性。