Migration Third-Party Controls
Key Takeaways
  • DevExpress UI for WPF and Telerik UI for WPF are WPF only; no cross-platform binary exists for Uno Platform
  • Uno Platform implements a wide WinUI control surface across Windows, Web, mobile, and Linux
  • The Windows Community Toolkit DataGrid is the default cross-platform replacement for vendor grids
  • The Uno Toolkit covers Card, Chip, TabBar, NavigationBar, and DrawerControl categories
  • Syncfusion .NET MAUI controls remain available through .NET MAUI Embedding for advanced scenarios

Who this is for: WPF teams that depend on DevExpress or Telerik control suites and want to ship a single codebase across Windows, Web, mobile, and Linux with Uno Platform.

The Problem

Why DevExpress and Telerik WPF Do Not Move Cross-Platform

DevExpress UI for WPF and Telerik UI for WPF are compiled against the WPF rendering stack on Windows. Their binaries reference WPF assemblies, WPF dependency properties, and Win32 interop. None of that runs on Web, Android, iOS, macOS, or Linux. Vendors offer separate suites for other frameworks, but those are different products with different APIs and licenses.

Uno Platform takes a different approach. It implements the WinUI control set across all major targets, so any control your app uses must come from a library that runs on every target you care about.

The decision becomes binary. Either you replace each vendor control with a cross-platform equivalent, or you keep a paid suite that already supports your target list. Most teams replace, then add a paid library only for the few controls that need advanced features.

Step 1

1 Inventory Every Third-Party WPF Control

Run a real inventory before you write any replacement code. Three commands give you everything you need.

Terminal
# 1. List every NuGet reference in the WPF solution
dotnet list package --include-transitive > packages.txt

# 2. Find DevExpress and Telerik XAML namespaces
grep -rEn "xmlns:(dx|dxg|dxe|telerik)=" ./src --include="*.xaml" > xaml-usage.txt

# 3. Find code-behind references to vendor types
grep -rEn "DevExpress\.|Telerik\." ./src --include="*.cs" > code-usage.txt

Group the output by control category: grids, navigation, layout, charts, scheduling, reporting. Each group becomes one row in the mapping table you build in Step 2. Categorize before you research replacements; otherwise you spend time on controls that one team uses once and could remove entirely.

Step 2

2 Map Controls to Uno Platform Replacements

The mapping table below covers the most common DevExpress and Telerik WPF categories. It uses a layered stack: built-in WinUI controls first, then the Windows Community Toolkit, then the Uno Toolkit, then a paid third party only when nothing free covers the requirement.

Vendor ControlCategoryUno Platform ReplacementNotes
GridControl, RadGridViewDataGridCommunityToolkit DataGridFree, cross-platform, sorting, grouping, column types
PropertyGrid, RadPropertyGridObject editorCustom ItemsRepeater + typed editorsNo drop-in equivalent; build per ViewModel
SchedulerControl, RadScheduleViewSchedulerSyncfusion via MAUI Embedding, or custom CalendarViewAdvanced recurrence needs a paid library
PivotGridControl, RadPivotGridPivot tableSyncfusion PivotGrid via MAUI EmbeddingNo free equivalent in WinUI or Uno Toolkit
ChartControl, RadChartViewChartsLightningChart for Uno, or LiveChartsBoth confirmed in Uno Platform recipe books
DockLayoutManager, RadDockingDockingUno Toolkit TabBar + DrawerControl, NavigationViewFull floating panes need custom work
XtraReports, Telerik ReportingReportingServer-side render to PDF, or Syncfusion ReportsNo direct cross-platform port of vendor designers

The Uno Toolkit controls cover AutoLayout, Card, CardContentControl, Chip, TabBar, NavigationBar, and DrawerControl. Most DevExpress and Telerik navigation, dock, and card patterns fold into these.

Step 3

3 Replace a DevExpress or Telerik DataGrid

Here is the WPF source you might be replacing:

WPF
<!-- WPF, DevExpress -->
<Window xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid">
  <dxg:GridControl ItemsSource="{Binding Customers}">
    <dxg:GridControl.Columns>
      <dxg:GridColumn FieldName="Name" />
      <dxg:GridColumn FieldName="City" />
      <dxg:GridColumn FieldName="Revenue" />
    </dxg:GridControl.Columns>
    <dxg:GridControl.View>
      <dxg:TableView AllowSorting="True" />
    </dxg:GridControl.View>
  </dxg:GridControl>
</Window>

And here is the Uno Platform replacement using the Windows Community Toolkit DataGrid. This XAML compiles for WinUI on Windows, WebAssembly, Skia on Linux and macOS, Android, and iOS from a single project.

Uno Platform
<!-- Uno Platform, Windows Community Toolkit DataGrid -->
<Page xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls">
  <controls:DataGrid x:Name="CustomersGrid"
                     ItemsSource="{x:Bind ViewModel.Customers, Mode=OneWay}"
                     AutoGenerateColumns="False"
                     CanUserSortColumns="True"
                     GridLinesVisibility="Horizontal">
    <controls:DataGrid.Columns>
      <controls:DataGridTextColumn Header="Name"    Binding="{Binding Name}" />
      <controls:DataGridTextColumn Header="City"    Binding="{Binding City}" />
      <controls:DataGridTextColumn Header="Revenue" Binding="{Binding Revenue}" />
    </controls:DataGrid.Columns>
  </controls:DataGrid>
</Page>
C#
public sealed record Customer(string Name, string City, decimal Revenue);

The cross-platform DataGrid covers sorting, grouping, frozen columns, and typed column kinds. Swap x:Bind for {Binding} only if your ViewModel does not expose typed properties.

Practical

Licensing, Bundle Size, and Theming

The free stack (built-in WinUI controls, Windows Community Toolkit, Uno Toolkit) ships under permissive licenses and does not add vendor support contracts to your bill. A paid stack (Syncfusion or LightningChart) keeps the support relationship but introduces per-developer licensing again. Pick once at the program level instead of letting each team make its own choice.

Bundle size moves with the control set. Vendor suites in WPF often pull tens of megabytes of assemblies you never use. The Windows Community Toolkit DataGrid is one focused package, and the Uno Toolkit ships granular packages so you only reference what you display. Trim before you measure WebAssembly bundle size.

Theming is the third axis. DevExpress and Telerik ship their own theme systems that do not exist outside WPF. Inside Uno Platform you align on Material or Fluent through the Uno Themes library, or use lightweight styling in the Uno Toolkit. Plan a theming pass alongside the control replacement, not after.

Gaps

When Keeping a Paid Suite Still Makes Sense

The free stack does not cover everything. These pitfalls show up most often when teams try to replace a vendor suite line for line.

  1. Server-side virtualized grids: DevExpress GridControl streams millions of rows with frozen headers and grouping. The WCT DataGrid handles client-side virtualization well; for server-side scenarios you build paging into your ViewModel or move to a paid grid.
  2. Scheduler with recurrence and time zones: Telerik RadScheduleView and DevExpress SchedulerControl ship a complete recurrence editor. Plan on Syncfusion or a custom calendar.
  3. PivotGrid with OLAP: There is no free WinUI pivot. Use Syncfusion PivotGrid via .NET MAUI Embedding.
  4. Reporting designers: XtraReports and Telerik Reporting do not have a cross-platform port. Render reports server side and display PDFs.

When these gaps matter, you can host Syncfusion controls via .NET MAUI Embedding inside your Uno Platform app. That keeps the rest of your stack on the free baseline.

FAQ

FAQ

Can I use DevExpress UI for WPF with Uno Platform?

No. DevExpress UI for WPF binaries depend on the WPF rendering stack and only run on Windows desktop WPF. DevExpress does not ship a cross-platform target for Uno Platform. Replace the controls with the Windows Community Toolkit DataGrid, the Uno Toolkit, and built-in WinUI controls.

Does Uno Platform have a DataGrid?

Yes. Uno Platform supports the Windows Community Toolkit DataGrid across every target, including WebAssembly.

What replaces Telerik RadGridView for cross-platform?

For most LOB cases, the Windows Community Toolkit DataGrid replaces RadGridView one to one. For advanced grouping, hierarchical grids, or server-side virtualization, host Syncfusion controls via .NET MAUI Embedding inside your Uno Platform project.

Should I replace third-party controls before or after migrating to Uno Platform?

Inventory first, replace in place during the migration. Rewriting twice (first inside WPF, then again inside Uno Platform) doubles the work and risks shipping a half-migrated UI. Build the mapping table early and apply each replacement against the target stack.

Next Steps

Next Steps

Start with the inventory. Run the three commands in Step 1, fill in the mapping table for your specific controls, and pick the smallest screen in the app to migrate first. The Windows Community Toolkit DataGrid covers the largest single category of vendor controls, so a grid-heavy screen is a good candidate. For everything else, the Uno Toolkit and built-in WinUI controls cover the layout, navigation, and input categories without any paid dependency.