<IG:XamDataGrid x:Name="ResultsGrid" MinHeight="200" Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" AutoFit="True" DataSource="{Binding ResultSet, IsAsync=True}" DockPanel.Dock="Top" ActiveDataItem="{Binding Path=ActiveDataItem, Mode=OneWayToSource}" Style="{DynamicResource StaticDataGridStyle}" >
<IG:XamDataGrid.FieldLayoutSettings> <IG:FieldLayoutSettings AutoGenerateFields="True" FilterUIType="FilterRecord" HighlightAlternateRecords="False" AllowClipboardOperations="All" SelectionTypeRecord="Extended" HeaderPrefixAreaDisplayMode="FieldChooserButton" CopyFieldLabelsToClipboard="True" SelectionTypeCell="Single" AutoFitMode="Never" FixedRecordUIType="Button" FixedRecordLimit="1" AllowRecordFixing="Top" FixedFieldUIType="Button" /> </IG:XamDataGrid.FieldLayoutSettings> <IG:FieldSettings AllowEdit="False" SummaryUIType="MultiSelectForNumericsOnly" SummaryDisplayArea= "BottomFixed,InGroupByRecords" AllowRecordFiltering="True" AutoSizeOptions="All" AutoSizeScope="AllRecords" AllowResize="True" AllowFixing="Near" />
</IG:XamDataGrid>
public MainWindow() { InitializeComponent(); this.DataContext = this; }
private DataTable _resultSet = new DataTable(); public DataTable ResultSet { get { return _resultSet; } set { _resultSet = value; OnPropertyChanged("ResultSet"); } }
one one button click I'm addeing data in datasource
_resultSet = new DataTable(); _resultSet.Columns.Add("Dosage", typeof(int)); _resultSet.Columns.Add("Drug", typeof(string)); _resultSet.Columns.Add("Patient", typeof(string)); _resultSet.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows. _resultSet.Rows.Add(25, "Indocin", "David", DateTime.Now);
-- I'm getting this error on form load .
Hello jit,
Thank you for the code, you have sent. It was very helpful to observe the functionality you want to achieve.
In order to avoid the exception which occurs on load you will have to specify the full path of the FieldSettings property:
<IG:XamDataGrid.FieldSettings> <IG:FieldSettings AllowEdit="False" SummaryUIType="MultiSelectForNumericsOnly" SummaryDisplayArea= "BottomFixed,InGroupByRecords" AllowRecordFiltering="True" AutoSizeOptions="All" AutoSizeScope="AllRecords" AllowResize="True" AllowFixing="Near"/></IG:XamDataGrid.FieldSettings>
Additionally, please note that you can add columns and rows to already existing table, if you want to change the DataSource, in this case by declaring a new table (_resultSet = new DataTable()), you will have to use ObservableCollection or a property which implements INotifyPropertyChanged, so consider using the property (ResultSet), rather than the field.
For reference also see the attached sample application.