public ReceiveAddressesViewModel(Wallet wallet, HashSet <string> suggestions)
    {
        _suggestions = suggestions;
        Wallet       = wallet;
        Network      = wallet.Network;
        _addresses   = new ObservableCollection <AddressViewModel>();

        SetupCancel(enableCancel: true, enableCancelOnEscape: true, enableCancelOnPressed: true);

        EnableBack = true;

        // [Column]		[View]				[Header]	[Width]		[MinWidth]		[MaxWidth]	[CanUserSort]
        // Actions		ActionsColumnView	-			90			-				-			false
        // Address		AddressColumnView	Address		2*			-				-			true
        // Labels		LabelsColumnView	Labels		210			-				-			false

        Source = new FlatTreeDataGridSource <AddressViewModel>(_addresses)
        {
            Columns =
            {
                // Actions
                new TemplateColumn <AddressViewModel>(
                    null,
                    new FuncDataTemplate <AddressViewModel>((node, ns) => new ActionsColumnView(),  true),
                    options: new ColumnOptions <AddressViewModel>
                {
                    CanUserResizeColumn = false,
                    CanUserSortColumn   = false
                },
                    width: new GridLength(90,                      GridUnitType.Pixel)),

                // Address
                new TemplateColumn <AddressViewModel>(
                    "Address",
                    new FuncDataTemplate <AddressViewModel>((node, ns) => new AddressColumnView(),  true),
                    options: new ColumnOptions <AddressViewModel>
                {
                    CanUserResizeColumn = false,
                    CanUserSortColumn   = true,
                    CompareAscending    = AddressViewModel.SortAscending(x => x.Address),
                    CompareDescending   = AddressViewModel.SortDescending(x => x.Address)
                },
                    width: new GridLength(2,                       GridUnitType.Star)),

                // Labels
                new TemplateColumn <AddressViewModel>(
                    "Labels",
                    new FuncDataTemplate <AddressViewModel>((node, ns) => new LabelsColumnView(),   true),
                    options: new ColumnOptions <AddressViewModel>
                {
                    CanUserResizeColumn = false,
                    CanUserSortColumn   = false
                },
                    width: new GridLength(210,                     GridUnitType.Pixel))
            }
        };

        Source.RowSelection !.SingleSelect = true;

        InitializeAddresses();
    }