Posts tagged with 'wpf'
The ICollectionView interface is the primary data view object in WPF. It's essentially a view of the underlying data source that allows you to manipulate your data without actually modifying the underlying values. You define your own rules for sorting, filtering and grouping, etc.
In the wonderful world of WPF development there are some things that are easier to do code and some things better left to XAML. For instance, in my previous webcast Charting 101, most of the work was done in C# code but the DataTemplates were done in XAML. I prefer to do most of my work in code so that it's all in one place, but creating a DataTemplate is something that is much easier to do in XAML. Plus, they can be loaded from code and assigned to other dynamic elements at runtime without much problem. But you might find yourself in a scenario where you need to completely generate a DataTemplate programmatically. How can you do it?
FlexGrid is a lightweight and flexible datagrid control with an easy-to-use object model. It offers unique features like true unbound mode, cell merging, flexible styling, multi-cell row and column headers as well as quick and simple printing. What really makes the FlexGrid unique is the power and simplicity of its object model and great performance.
The ComponentOne Chart control (WPF/Silverlight) provides four useful methods that help with custom user interaction. They allow you to determine which data point is nearest the mouse, as well as quickly convert plot coordinates to control coordinates and vice versa. Use any combination of these methods to unlock virtually any form of user-to-plot interaction imaginable.
With ComponentOne's new Maps for WPF you get a viewing container control, C1Maps, for online maps. C1Maps provides smooth zooming, panning and mapping between screen and geographical coordinates. It can display map tiles from various sources, including Microsoft Live MapsTM or it can import geographic image files (KML). Then you can display various elements on top of the map layer positioned to specific geographic coordinates. Use the Items Layer for displaying arbitrary items like buttons, charts and labels. Use the Vector Layer for displaying vector data, like lines and polygons, whose vertices are geographically positioned. There's also the Virtual Layer which can be used for a virtualized display of items, meaning only items in view are downloaded from the server.
Times are changing and so is Studio for WPF. In addition to the new C1FlexGrid control we've just ported the existing C1DataGrid from Studio for Silverlight to WPF in the 2010 v2 release. Back in 2007 we introduced the original C1DataGrid control for WPF which was heavily designer inspired. It had many visual and interactive features such as drag-and-drop grouping, a carousel view, built-in themes based on Microsoft Office products, and Excel-like horizontal and vertical splits. It was ahead of its time...at that time. But now, we here at ComponentOne have decided to port all of our Silverlight controls to the WPF platform so we can deliver more controls with better performance and more functionality in much less time. This created a conflict because we already had a "C1DataGrid" (and C1Scheduler) in Studio for WPF. We ultimately decided to stick with the original Silverlight versions and thus move the old WPF versions to legacy, maintenance only mode. By porting controls from Silverlight to WPF we also strive to have more compatibility among our different platform studios. We now have C1DataGrid in Silverlight and WPF, we have C1FlexGrid in WinForms, Silverlight and WPF. We believe this not only improves the value of Studio Enterprise, but it creates a clearer migration path for components.
The C1Scheduler control provides an appointment data model common to most scheduling applications. This model includes data storage for the default appointment fields:
Most Silverlight applications access data from web services. The problems we face is that sometimes the UI controls perform poorly when handling large amounts of data, whether you're using a listbox, datagrid, chart, etc, and it also becomes impractical to try and send really large amounts of data over the wire at once. So we have to look at how we can workaround these problems to optimize our application. There are several techniques we can use, some of which are provided for free from the controls:
In 2009 v3, we here at ComponentOne released a set of docking controls for Silverlight. With docking controls you can create an MDI application where users can dock, undock, and float various windows within the application. This type of UI is common in many applications, such as Adobe Photoshop and Microsoft Visual Studio. Now in 2010 we have these exact same, fully compatible controls for WPF. DockControl for WPF includes several new controls for your WPF toolbox:
The ComponentOne Chart for WPF and Silverlight has a new Aggregate feature which performs instant aggregation on the plotted data. By simply setting one property we can change the chart's view to calculate and display an aggregation, such as total count, average, sum and standard deviation.