繁体   English   中英

如何组织此类DataGrid的ItemSource

[英]How to organize ItemSource for such DataGrid

我正在使用MVVM,无法弄清楚如何为此类DataGrid组织ItemSource类。

DataGrid XAMl代码:

<DataGrid  CanUserAddRows="True"
                   ItemsSource="{Binding TestCollection}">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="First Column">
                    <DataGridTemplateColumn.CellEditingTemplate >
                        <DataTemplate >
                            <ContentControl>
                                <StackPanel>
                                    <TextBox Text="{Binding First}"/>
                                    <TextBox Text="{Binding Second}"/>
                                </StackPanel>
                            </ContentControl>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>

                <DataGridTemplateColumn Header="Second Column">
                    <DataGridTemplateColumn.CellEditingTemplate >
                        <DataTemplate >
                            <ContentControl>
                                <StackPanel>
                                    <TextBox Text="{Binding Third}"/>
                                    <TextBox Text="{Binding Fourth}"/>
                                </StackPanel>
                            </ContentControl>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
</DataGrid>

我有这个主意,但这行不通。

 public class ComplexTable
{
    public ComplexTable()
    {
        FirstProperty = new FirstClass();
        SecondProperty = new Second();    
    }
    public class FirstClass
    {
        public FirstClass()
        {
            First = "FirstString";
            Second = "SecondString";
        }
        public string First { get; set; }
        public string Second { get; set; }
    }

    public class Second
    {
        public Second()
        {
            Third = "ThirdString";
            Fourth = "FourthString";
        }
        public string Third { get; set; }
        public string Fourth { get; set; }
    }

    public FirstClass FirstProperty { get; set; }
    public Second SecondProperty { get; set; }
}

public ObservableCollection<ComplexTable> _testCollection = new ObservableCollection<ComplexTable>();
private ObservableCollection<ComplexTable> TestCollection
{
    get { return _testCollection; }
    set
    {
        _testCollection = value;
        RaisePropertyChanged("TestCollection");
    }

}

据我了解负责DataGrid中列的ItemSource类中的每个属性,并且如果单元格包含多个控件等,则Property Type也应包含每个控件的属性。 不能找出我错了。

http://www.codeproject.com/Articles/683429/Guide-to-WPF-DataGrid-formatting-using-bindings

您可以通过此链接了解。

 <StackPanel>
        <TextBox Text="{Binding SelectedItem.Name, ElementName=myDataGrid}"/>
        <DataGrid x:Name="myDataGrid" />
    </StackPanel>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM