initial work for pocket selection ui.
ADD
WalletWasabi.Fluent/ViewModels/Wallets/Send/PocketViewModel.cs
+namespace WalletWasabi.Fluent.ViewModels.Wallets.Send
+{
+ public partial class PocketViewModel : ViewModelBase
+ {
+ [AutoNotify] private bool _isSelected;
+ [AutoNotify] private decimal _totalBtc;
+ [AutoNotify] private string _labels;
+ }
+}
\ No newline at end of file

MODIFY
WalletWasabi.Fluent/ViewModels/Wallets/Send/PrivacyControlViewModel.cs
WalletWasabi.Fluent/ViewModels/Wallets/Send/PrivacyControlViewModel.cs
+using System.Collections.ObjectModel;
using WalletWasabi.Fluent.ViewModels.Navigation;
namespace WalletWasabi.Fluent.ViewModels.Wallets.Send
@@ -5,5 +6,47 @@ namespace WalletWasabi.Fluent.ViewModels.Wallets.Send
[NavigationMetaData(Title = "Privacy Control")]
public partial class PrivacyControlViewModel : RoutableViewModel
{
+ [AutoNotify] private ObservableCollection<PocketViewModel> _pockets;
+
+ public PrivacyControlViewModel()
+ {
+ _pockets = new ObservableCollection<PocketViewModel>();
+
+ _pockets.Add(new PocketViewModel
+ {
+ TotalBtc = 1.3m,
+ Labels = "Adam, Max, Dan"
+ });
+
+ _pockets.Add(new PocketViewModel
+ {
+ TotalBtc = 2.4m,
+ Labels = "Bob, Alice"
+ });
+
+ _pockets.Add(new PocketViewModel
+ {
+ TotalBtc = 0.3m,
+ Labels = "Coinbase"
+ });
+
+ _pockets.Add(new PocketViewModel
+ {
+ TotalBtc = 0.1m,
+ Labels = "David"
+ });
+
+ _pockets.Add(new PocketViewModel
+ {
+ TotalBtc = 0.1m,
+ Labels = "Unlabelled"
+ });
+
+ _pockets.Add(new PocketViewModel
+ {
+ TotalBtc = 0.3m,
+ Labels = "Private"
+ });
+ }
}
}
\ No newline at end of file

MODIFY
WalletWasabi.Fluent/ViewModels/Wallets/Send/SendViewModel.cs
WalletWasabi.Fluent/ViewModels/Wallets/Send/SendViewModel.cs
@@ -90,6 +90,9 @@ namespace WalletWasabi.Fluent.ViewModels.Wallets.Send
NextCommand = ReactiveCommand.Create(() =>
{
+ Navigate().To(new PrivacyControlViewModel());
+ return;
+
var password = "foo";
var transactionInfo = _transactionInfo;
var wallet = _owner.Wallet;

MODIFY
WalletWasabi.Fluent/Views/Wallets/Send/PrivacyControlView.axaml
WalletWasabi.Fluent/Views/Wallets/Send/PrivacyControlView.axaml
x:DataType="vm:PrivacyControlViewModel"
x:CompileBindings="True"
x:Class="WalletWasabi.Fluent.Views.Wallets.Send.PrivacyControlView">
- <c:ContentArea Title="Send" Caption=""
+ <c:ContentArea Title="Privacy Control" Caption="Parts of your wallet are know to certain entities. Select the entities you can tolerate leaking information about this transaction:"
HorizontalAlignment="Left"
EnableCancel="False"
EnableNext="True"
NextContent="Continue"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
+ <DataGrid Items="{Binding Pockets}">
+ <DataGrid.Columns >
+ <DataGridCheckBoxColumn x:DataType="vm:PocketViewModel" Binding="{Binding IsSelected}" CanUserSort="False" CanUserResize="False" CanUserReorder="False" />
+ <DataGridTextColumn x:DataType="vm:PocketViewModel" Header="Total (BTC)" Binding="{Binding TotalBtc}" />
+ <DataGridTextColumn x:DataType="vm:PocketViewModel" Header="Labels" Binding="{Binding Labels}" Width="Auto" />
+ </DataGrid.Columns>
+ </DataGrid>
</c:ContentArea>
</UserControl>

initial work for pocket selection ui.