Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

How to: Provide Additional Property Values from a Data Source Using Property Mappings

  • 3 minutes to read

To provide additional property values from a data source using property mappings, create instances of the MapRectangleWidthMapping and MapRectangleHeightMapping classes, specify their properties and add them to the DataSourceAdapterBase.PropertyMappings collection.

class StateRect {
    // The latitude of top-left angle of a rectangle.
    public double Top { get; set; }
    // The longitude of top-left angle of a rectangle.
    public double Left { get; set; }
    // The width in kilometers of a rectangle.
    public double Width { get; set; }
    // The height in kilometers of a rectangle.
    public double Height { get; set; }
}

// Create a data source.
List<StateRect> dataSource = new List<StateRect> {
    new StateRect { Top = 44.996250, Left = -111.049638, Width = 496, Height = 444 },
    new StateRect { Top = 48.990004, Left = -104.042967, Width = 480, Height = 338 },
    new StateRect { Top = 45.944326, Left = -104.042967, Width = 528, Height = 338 },
    new StateRect { Top = 41.000038, Left = -109.049518, Width = 528, Height = 445 }
};

private void Form1_Load(object sender, EventArgs e) {
    // Create a data source for the vector layer.
    var dataAdapter = new ListSourceDataAdapter();
    dataAdapter.DataSource = dataSource;
    dataAdapter.DefaultMapItemType = MapItemType.Rectangle;
    // Specify the obligatory mappings.
    dataAdapter.Mappings.Latitude = "Top";
    dataAdapter.Mappings.Longitude = "Left";
    // Add rectange specific property mappings.
    dataAdapter.PropertyMappings.AddRange(new MapItemPropertyMappingBase[] {
        new MapRectangleWidthMapping { Member = "Width", DefaultValue = 0 },
        new MapRectangleHeightMapping { Member = "Height", DefaultValue = 0 }
    });
    VectorLayer.Data = dataAdapter;
}