将控件列表发送到UserControl

时间:2014-07-30 08:14:29

标签: c# .net wpf xaml

您好我想创建具有可配置列的控件(类似于dataGrid但具有其他功能)。在xaml中我希望有这样的东西:

<MyGrid ItemsSource="{Binding Orders}">
    <MyGrid.Columns>
        <MyGridTextColumn Header="Serial Number" Value="{Binding Id}" />
        <MyGridTextColumn Header="Customer" Value="{Binding Customer}" />
        <MyGridCheckBoxColumn Header="Is active" Value="{Binding IsActive}" />
    </MyGrid.Columns>
</MyGrid>

我在后台代码属性中创建了对象列表,我尝试了很多东西,但是setter永远不会运行。

public partial class MyGrid : UserControl
{

    private List<Object> _columns;
    public List<Object> Columns
    {
        get { return _columns; }
        set
        {
            _columns = value;
        }
    }
}

这是我需要做的其他事情来添加这些属性吗?我也尝试过DependencyProperty,但它也不起作用。

1 个答案:

答案 0 :(得分:0)

请记住,在创建列列表时,不会在用列填充列时调用setter。

xaml

<MyGrid.Columns>
    <MyGridTextColumn Header="Serial Number" Value="{Binding Id}" />
    <MyGridTextColumn Header="Customer" Value="{Binding Customer}" />
    <MyGridCheckBoxColumn Header="Is active" Value="{Binding IsActive}" />
</MyGrid.Columns>

只是将列添加到现有集合中,不会创建新列。