【问题标题】:Filter Data from a ObservableCollection to populate a DataGrid从 ObservableCollection 过滤数据以填充 DataGrid
【发布时间】:2020-01-03 18:30:17
【问题描述】:

我有一个包含多个变量的 ObservableCollection。我想将此集合绑定到数据网格,但只有 3 个变量。

public ObservableCollection<BlockData> BlockDatas { get; set; } = new ObservableCollection<BlockData>();

        public class BlockData
        {
            public BlockData(MaterialSystem ms)
            {
                MaterialSystem = ms;
            }

            public MaterialSystem MaterialSystem { get; set; }
            public double SigmaA { get; set; }
            public double SigmaN { get; set; }
            public double SigmaR { get; set; }
            public double SigmaMax { get; set; }
            public double SigmaMin { get; set; }
            public int NCycles { get; set; }
            public int NEquiv { get; set; }
            public int NFinal { get; set; }
            public int NTotal { get; set; }
            public int NTotalBlockCycles { get; set; }
    }

这是集合绑定到的数据网格

<DataGrid Name="dtaStressInput"  Margin="10" Grid.Row="1" ItemsSource="{Binding BlockDatas}"  Grid.ColumnSpan="3">
                    <DataGrid.ColumnHeaderStyle>
                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="FontWeight"  Value="Bold" />
                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                            <Setter Property="Background" Value="DarkGray"/>
                            <Setter Property="BorderBrush" Value="#FFEEB622"/>
                            <Setter Property="BorderThickness" Value="2"/>
                        </Style>
                    </DataGrid.ColumnHeaderStyle>
                    <DataGrid.CommandBindings>
                        <CommandBinding Command="{x:Static ApplicationCommands.Paste}" Executed="DtaStressInput_Paste"/>
                    </DataGrid.CommandBindings>
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="R Ratio" Binding="{Binding MaterialSystem.R}"  Width="1*"/>

                        <DataGridTextColumn Binding="{Binding SigmaA}" Width="1*">
                            <DataGridTextColumn.Header>
                                <TextBlock>σ<Run BaselineAlignment="Subscript">a</Run></TextBlock>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>

                        <DataGridTextColumn Binding="{Binding NCycles}" Width="1*">
                            <DataGridTextColumn.Header>
                                <TextBlock>n<Run BaselineAlignment="Subscript">i</Run></TextBlock>
                            </DataGridTextColumn.Header>
                        </DataGridTextColumn>
                    </DataGrid.Columns>
                </DataGrid>

这是我得到的网格

我希望用这些列填充数据网格

【问题讨论】:

    标签: c#


    【解决方案1】:

    您可以将 AutoGenerateColumns 设置为 false,您拥有的其他一切都应该没问题。

    <DataGrid AutoGenerateColumns="False"...
    

    https://stackoverflow.com/a/21899261/1532710

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2012-01-19
      • 2014-03-03
      相关资源
      最近更新 更多