- 
                Notifications
    You must be signed in to change notification settings 
- Fork 47
Upgrading to Avalonia v11
This page will help you upgrade your application to the latest Avalonia v11.
https://github.com/AvaloniaUI/Avalonia/wiki/Breaking-Changes
- 
DropDown->ComboBox
This is a breaking change that affects your Views.
Developers must define the DataType property of the DataTemplate and ItemTemplate elements.
When using Compiled Bindings in your XAML, not only will your applications perform better, but it will also allow the compiler will throw an error immediately so that you do not get any surprises at runtime.
All child nodes will inherit this property, so you can enable it in your root node and disable it for a specific child if needed. Below are the 3 key properties which must be set to use in this fashion.
- xmlns:vm="using:NAMESPACE.OF.VIEWMODEL"
- x:CompileBindings="True"
- x:DataType="vm:YOURVIEWMODEL"
For more information, see the official documentation of Compiled Bindings to assist your project's needs better.
Sample:
<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:system="clr-namespace:System;assembly=mscorlib"
             xmlns:vm="using:SampleMvvmApp.ViewModels"
             x:Class="SampleMvvmApp.Views.DashboardView"
             x:CompileBindings="True"
             x:DataType="vm:DashboardViewModel">Avalonia v0.10:
// Use the following when the `revision` wildcard is in use.
Version? version = System.Reflection.Assembly.GetExecutingAssembly()?.GetName().Version;
DateTime buildDate = version is not null ? new DateTime(2000, 1, 1).AddDays(version.Build).AddSeconds(version.Revision * 2) : default;
string ver = $"{version}{(version?.Revision != 0 ? $" ({buildDate})" : string.Empty)}";
string platform = "";
RuntimePlatformInfo? info = AvaloniaLocator.Current.GetService<IRuntimePlatform>()?.GetRuntimeInfo();
platform = info.Value.OperatingSystem.ToString();Avalonia v0.10:
  if (string.IsNullOrEmpty(text) || Application.Current is null || Application.Current.Clipboard is null)
    return;
  await Application.Current.Clipboard.SetTextAsync(text);