为WPF用户控件datagrid创建属性

为WPF用户控件datagrid创建属性,wpf,user-controls,Wpf,User Controls,我有一个名为IGrid的数据网格用户控件。我想为它添加GridViewColumnCollection权限 public class DataGridNumericColumn : DataGridTextColumn { protected override object PrepareCellForEdit(System.Windows.FrameworkElement editingElement, System.Windows.RoutedEventArgs editingEve

我有一个名为IGrid的数据网格用户控件。我想为它添加GridViewColumnCollection权限

public class DataGridNumericColumn : DataGridTextColumn
{
    protected override object PrepareCellForEdit(System.Windows.FrameworkElement editingElement, System.Windows.RoutedEventArgs editingEventArgs)
    {
        TextBox edit = editingElement as TextBox;
        edit.PreviewTextInput += OnPreviewTextInput;
        return base.PrepareCellForEdit(editingElement, editingEventArgs);
    }
    void OnPreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e)
    {
        try
        {
            Convert.ToInt32(e.Text);
        }
        catch
        {
            e.Handled = true;
        }
    }
}
从谷歌我得到了一段代码`

private Collection<DataGridColumn> field = new Collection<DataGridColumn>();
[Category("Data")]
[Description("Column Creation")]                     
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public Collection<DataGridColumn> Columns
{
    get { return field; }
}
private Collection field=new Collection();
[类别(“数据”)]
[说明(“列创建”)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
公共收藏专栏
{
获取{返回字段;}
}
在这里,我可以在可视化树中获取GridViewColumnCollection, 我的问题是如何使用上述代码在集合中添加新类型(DataGridNumericColumn)


如果您不知道代码的作用,最好在尝试使用它之前研究它,或者提出自己的解决方案。据我所知,您正在尝试向继承DataGrid的UserControl添加一个附加属性

您有两个选择:

  • 创建DependencyProperty(在我看来,这是最好的选择)
  • 创建一个普通属性
  • 以下是一些帮助您入门的链接:


    请任何人回复