kl?B6x(WClr!WOiOl=Z32t0aglTw1WCxs1#2VgNCdlp-t`AD$H>E{m(7mQ;<=r
zNR_kIKj*ga0r}-X$Nk5l0`+2QQdWkdDu5gU-L2fQoJuWdeM>B>XqaCe|q`#}S>8z5C+
zQrW&it%@HXYV_0wdzrj;7;;K3t^d3YV#`hxLHHnBN%Crcr3g#(y_ge)uE{U)7E*v{
zZz9Dtu5rXU%jsTg{7q8%p)wmy=g^m#iY_7PsyAl8w&8hZExK>yos{;35AQN=inYYK
zL3_dYvrHARnyTB=vRD3EOV`@1f#;THq4{l1N8#4HPXq3BjVe1iyM}w-IYEl0Rv3;y
z4m?geWq(zf3B(vSK6?zc7gtKQNqX`r=pJQI@t1_@&`)nqZ*M
zSH^KtSfT=T3Vq|*uyVGGz&Wlh`glh_G2%&S>9W`{MZyG~F?Vk405v{yp~S=;@+Bpx
zYEWe{^8B%q&)#!+e#LK#bC~5CYPq9FWn?ZEHGkhHDkJ11=z?Gp%m;qrF0peTuX^;X
z`lPBGT>Zl(Hm)Nn_DKo!6m0fW&CW`*kztW%MLl|!D}SfQ-#tA0X4Sz#3aMA|{)l#=
z5jJ4=p%_7N
z-et#9BGo$d?>H9Qm|Sa7K1#kvkF{I{D-y#hp8&9tI)NwH<1lI9o=C}nqG6DPmQNhiwopl;1V8oN|=!e{Ht@~M`MR(8~
z7vk9)osb~-j+%T(EpwFIUza)AU10TjxFagky%~Bz(Xj37xk8pGAe;z@XJ*qxn8JIl
zouo=nQLQ>vw1bdq>iU8eD<0odR98(^c)M}J;=We$tY-V+{XqwlXK?}WJ7BURG%PKw{X-Qy$tNQ_L`IZrRsT+<
znu_+3$Fsauqeh+B<}?+j#DQC-P_1Zr4TM)jMAffOT9$}HjEe0~>dT7B
z2G8@vFSnHk+1#>^e-N+;O2LGQoG)Y`kNQQ+4h`e~3=We>2s2t#T?*Cf#7*5+Z>qHaf
zvGD6A$^BJBcb+!py3-po!J%qQnI0hei$wrHsqu|Zspih(+pq=i-UPr|GTx4yk)gz0
zVfPDxH3>7NiUca%A=-$AQ=563*1vd&pQ3(B5h>`htPOG7t*z=Xln~I{7$up-K^Tn$
znniMC1x}yi!`1lY81_t!ZU$2j^R{+d=43PB7BeuL`@tuX{$!wB_N*v#k~7F#U7YTD
zzx5-se;}JK|3e)3#KGXtn9Y;B!8_^n+TeejfvgGDzTxDz@Bw$XpqY7s=Rew3E7m;_
zTMuro2ZwH5cfPOPg4zB^s<&gQAa
zf9zP~FM0kYPm!JfrBDCEF!Pt){AD+P+09>m7E%H;TXuBX>)AVC
zzkm?;*4h@oO9&E$C;C?vCWdxycOqBQh5Br~L#
zaiz|1xhY9N2|LDJQ5R>f7=}E&9I~A3#O^JS5%L;>#)oAyJp>45VK`a>D^NrFta;vb
z-Mhq!=k(-;;4YdI9PHR_fhQd*!S~mt%G8na_r=7CkHPDrpPQfWTo%e=bRA9yIp0Du
cj|ow4sr(*&5ALarg!1a;8<&bM-23hS09Br6IRF3v
literal 0
HcmV?d00001
From b434a66f298122180afd02c902e28ede25c430e8 Mon Sep 17 00:00:00 2001
From: Riccardo Piredda <127589992+Nemonek@users.noreply.github.com>
Date: Sun, 1 Sep 2024 14:39:40 +0200
Subject: [PATCH 06/17] First version of the guide. Waiting for last part
---
...ow-and-hide-a-split-view-pane-with-mvvm.md | 150 ++++++++++++++++++
1 file changed, 150 insertions(+)
diff --git a/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md b/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md
index 2eafddd8d..45761161b 100644
--- a/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md
+++ b/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md
@@ -2,5 +2,155 @@
id: how-to-show-and-hide-a-split-view-pane-with-mvvm
title: How To Show and Hide a Split View Pane with MVVM
---
+
+import FirstExample from '/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/First-example.PNG';
+import SecondExample from '/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/Second-example.PNG';
+
# How To Show and Hide a Split View Pane with MVVM
+In this guide you will learn how to show and hide a split view panel using the MVVM pattern. If you are new to Avalonia UI please check out the following documents: [The MVVM patter](https://docs.avaloniaui.net/docs/concepts/the-mvvm-pattern/) - [Avalonia UI and MVVM](https://docs.avaloniaui.net/docs/concepts/the-mvvm-pattern/avalonia-ui-and-mvvm).
+To proceed in this guide you will need at least a basic understanding of what Data Binding is and how it works in Avalonia.
+If you are coming from WPF, then the mechanism is nearly the same, except for some differences that will not be covered in this guide.
+
+## Starting
+First of all, you need to create an MVVM application project, which you can do by reading the following guide [Create and run a project](https://docs.avaloniaui.net/docs/get-started/test-drive/create-a-project).
+Once you created the project you should be presented with the following files:
+- MainWindow.axaml
+- MainWindowViewModel.cs
+
+Those are the files that you will be editing, except for the one that you will be creating during this guide.
+
+:::info
+Although here I will be using the MainWindow.axaml and MainWindowViewModel.cs files, this guide will work for every other View and its respective ViewModel.
+:::
+
+## Adding the SplitView panel to the MainWindow
+The starting point will be something like this:
+``` xml
+add
+```
+
+For the sake of simplicity I will be deleting everything in the main window and adding the SplitView panel.
+
+Start by creating the panel and by defining the basics of how you want it to behave (for more informations on how this control works see [here](https://docs.avaloniaui.net/docs/reference/controls/splitview))
+``` xml
+
+
+```
+If you used this same code you should see the following window when starting the application. The light grey panel on the right is the one you will be expanding at the end of this guide.
+
+
+## Adding the SplitView's pane
+Now that we have the SplitView we need to create its pane, which is the part that will be hidden when the split view is closed.
+``` xml
+
+
+
+
+
+```
+We will now add some additional elements to the pane. First we will add a StackPanel, then a button and a textbox with the text "Settings". The following configurations will ensure that the button and the text are aligned.
+``` xml
+
+
+
+
+
+
+
+
+```
+
+### Adding some content to the SplitView
+To make things more clear, I will add a TextBlock in the main part of the SplitView, which will be the content you may add and that will be alway visible.
+``` xml
+
+
+
+
+
+
+
+
+
+```
+
+## Binding the SplitView's `IsPaneOpen` property to a ViewModel's property.
+Fist of all, create a boolean property with a private backing field in the ViewModel which will contains the boolean value. Now, by using Reactive UI, make it notify every change to the backing field to the UI. Remember to initialize the backing property with the value you need in the VewModel's constructor.
+:::info
+By default in an MVVM project each ViewModel inherit from a ViewModelBase which inherits from the ReactiveObject class. By doing so in every ViewModel there will be the necessary methods to notify the UI. For more informations see [here](https://docs.avaloniaui.net/docs/concepts/reactiveui/reactive-view-model).
+:::
+``` C#
+private bool _isSplitViewPaneOpen;
+public bool IsSplitViewPaneOpen
+{
+ get => this._isSplitViewPaneOpen;
+ set
+ {
+ this.RaiseAndSetIfChanged(ref this._isSplitViewPaneOpen, value);
+ }
+}
+public MainWindowViewModel()
+{
+ this._isSplitViewPaneOpen = false;
+}
+```
+Now that we have the property with its backing field initialized, we can bind it to the SplitView's property: add the following code to the SplitView tag.
+``` xml
+IsPaneOpen="{Binding IsSplitViewPaneOpen}"
+```
+You should now have the following configuration:
+``` xml
+
+```
+
+## Configuring the button
+At this point all we need to do is make the button open and close the SplitView's pane when clicked.
+To do so create a public property of type ICommand in the ViewModel with just the "getter method".
+``` C#
+public ICommand ChangeSplitViewPaneStatusCommand { get; }
+```
+And initialize it in the constructor.
+``` C#
+this.ChangeSplitViewPaneStatusCommand = ReactiveCommand.Create(() =>
+{
+ this.IsSplitViewPaneOpen = !this.IsSplitViewPaneOpen;
+});
+```
+
+You should now have the following code in the ViewModel:
+
+``` C#
+public class MainWindowViewModel : ViewModelBase
+{
+ private bool _isSplitViewPaneOpen;
+ public bool IsSplitViewPaneOpen
+ {
+ get => this._isSplitViewPaneOpen;
+ set
+ {
+ this.RaiseAndSetIfChanged(ref this._isSplitViewPaneOpen, value);
+ }
+ }
+
+ public ICommand ChangeSplitViewPaneStatusCommand { get; }
+ public MainWindowViewModel()
+ {
+ this._isSplitViewPaneOpen = false;
+ this.ChangeSplitViewPaneStatusCommand = ReactiveCommand.Create(() =>
+ {
+ this.IsSplitViewPaneOpen = !this.IsSplitViewPaneOpen;
+ });
+ }
+}
+```
+Now, to make the button invoke the command you just need to bind it. (For more informations see [here](https://docs.avaloniaui.net/docs/0.10.x/data-binding/binding-to-commands))
+``` xml
+
```
-We will now add some additional elements to the pane. First we will add a StackPanel, then a button and a textbox with the text "Settings". The following configurations will ensure that the button and the text are aligned.
+We will now add some additional elements to the pane. First a StackPanel, then a button and a textbox with the text "Settings". The following configurations will ensure that the button and the text are aligned.
``` xml
@@ -81,7 +83,7 @@ We will now add some additional elements to the pane. First we will add a StackP
```
### Adding some content to the SplitView
-To make things more clear, I will add a TextBlock in the main part of the SplitView, which will be the content you may add and that will be alway visible.
+To make things more clear, I will add a TextBlock in the main part of the SplitView, which will be the content you may add and that will be always visible.
``` xml
@@ -96,7 +98,7 @@ To make things more clear, I will add a TextBlock in the main part of the SplitV
```
## Binding the SplitView's `IsPaneOpen` property to a ViewModel's property.
-Fist of all, create a boolean property with a private backing field in the ViewModel which will contains the boolean value. Now, by using Reactive UI, make it notify every change to the backing field to the UI. Remember to initialize the backing property with the value you need in the VewModel's constructor.
+Fist of all, create a boolean property with a private backing field in the ViewModel which will contains the boolean value. Now, by using Reactive UI, make it notify every change to the field to the UI. Remember to initialize the backing property with the value you need in the VewModel's constructor.
:::info
By default in an MVVM project each ViewModel inherit from a ViewModelBase which inherits from the ReactiveObject class. By doing so in every ViewModel there will be the necessary methods to notify the UI. For more informations see [here](https://docs.avaloniaui.net/docs/concepts/reactiveui/reactive-view-model).
:::
@@ -137,6 +139,7 @@ this.ChangeSplitViewPaneStatusCommand = ReactiveCommand.Create(() =>
this.IsSplitViewPaneOpen = !this.IsSplitViewPaneOpen;
});
```
+In this example I will be using a very simple logic: if the value is true it becomes false, and if it's false it becomes true.
You should now have the following code in the ViewModel:
@@ -175,9 +178,9 @@ By doing so the command will be invoked each time the button is clicked and will
## Adding content to the button
-Finally, you now just need to add some content to the button that indicates whether you need to show or hide the SplitView's pane. In this guide I will be using the following characters:
-- '<' to indicate the pane will be shown.
-- '>' to indicate the pane will be hidden.
+Finally, you now just need to add some content to the button that indicates whether you need to show or hide the SplitView's pane. In this guide we will be using the following characters:
+- '<' to indicate the pane will be shown on click.
+- '>' to indicate the pane will be hidden on click.
### Implement a converter
To do this step we will need the char to change as the Pane goes from shown to hidden and viceversa. To do so we need to create a converter function that will return the necessary char to the button when clicked.
@@ -216,7 +219,7 @@ Lastly, all that remains to do is bind the converter to the button's content. To
``` xml
xmlns:convs="clr-namespace:how_to_show_and_hide_a_split_view_pane_with_mvvm.Models"
```
-So that the Window tag will look something like
+So that the Window tag will look something like this.
``` xml
```
-
:::warning
If you want to approach the problem by using just a normal converter and passing to it, as parameter, the IsSplitViewPaneOpen property, don't try to do that as ConverterParameter does not currently support binding.
:::
+## Final result:
+**Pane hidden**
+
+**Pane shown**
+
From 99f39c6ce53ce853bcf8de015c87d4a3325b19b3 Mon Sep 17 00:00:00 2001
From: Riccardo Piredda <127589992+Nemonek@users.noreply.github.com>
Date: Mon, 2 Sep 2024 13:28:19 +0200
Subject: [PATCH 10/17] Delete tmp file used for directory creation.
---
.../How-to-show-and-hide-a-split-view-pane-with-MVVM/tmp.md | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/tmp.md
diff --git a/static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/tmp.md b/static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/tmp.md
deleted file mode 100644
index 8b1378917..000000000
--- a/static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/tmp.md
+++ /dev/null
@@ -1 +0,0 @@
-
From 1df45371dbe5df4898ccc496fd345d56d8928f85 Mon Sep 17 00:00:00 2001
From: Riccardo Piredda <127589992+Nemonek@users.noreply.github.com>
Date: Mon, 2 Sep 2024 13:30:22 +0200
Subject: [PATCH 11/17] Upload final images
---
.../Pane-Hidden.PNG | Bin 0 -> 14656 bytes
.../Pane-Shown.PNG | Bin 0 -> 17627 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/Pane-Hidden.PNG
create mode 100644 static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/Pane-Shown.PNG
diff --git a/static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/Pane-Hidden.PNG b/static/img/guides/development-guides/How-to-show-and-hide-a-split-view-pane-with-MVVM/Pane-Hidden.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..0c7be0cb1eeac6faa39955504511cea074fc1257
GIT binary patch
literal 14656
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
Date: Mon, 2 Sep 2024 14:13:28 +0200
Subject: [PATCH 12/17] More grammar
---
...w-to-show-and-hide-a-split-view-pane-with-mvvm.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md b/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md
index daaee08b7..58a8332bc 100644
--- a/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md
+++ b/docs/guides/development-guides/how-to-show-and-hide-a-split-view-pane-with-mvvm.md
@@ -83,7 +83,7 @@ We will now add some additional elements to the pane. First a StackPanel, then a
```
### Adding some content to the SplitView
-To make things more clear, I will add a TextBlock in the main part of the SplitView, which will be the content you may add and that will be always visible.
+To make things more clear, I will add a TextBlock in the main part of the SplitView, which will be the content you may add and that will always be visible.
``` xml
@@ -100,7 +100,7 @@ To make things more clear, I will add a TextBlock in the main part of the SplitV
## Binding the SplitView's `IsPaneOpen` property to a ViewModel's property.
Fist of all, create a boolean property with a private backing field in the ViewModel which will contains the boolean value. Now, by using Reactive UI, make it notify every change to the field to the UI. Remember to initialize the backing property with the value you need in the VewModel's constructor.
:::info
-By default in an MVVM project each ViewModel inherit from a ViewModelBase which inherits from the ReactiveObject class. By doing so in every ViewModel there will be the necessary methods to notify the UI. For more informations see [here](https://docs.avaloniaui.net/docs/concepts/reactiveui/reactive-view-model).
+By default in an MVVM project each ViewModel inherits from a ViewModelBase which inherits from the ReactiveObject class. By doing so in every ViewModel there will be the necessary methods to notify the UI. For more informations see [here](https://docs.avaloniaui.net/docs/concepts/reactiveui/reactive-view-model).
:::
``` C#
private bool _isSplitViewPaneOpen;
@@ -212,10 +212,10 @@ public object? Convert(IList values, Type targetType, object? parameter
}
```
:::warning
-Since we need only one value in this code we assume that every single value passed to this function should be a boolean.
+Since we need only one value in this code we will assume that every single value passed to this function should be a boolean.
:::
### Bind the converter to the button content.
-Lastly, all that remains to do is bind the converter to the button's content. To do so import the namespace of the converter in the MainWindow.axaml file by adding the following line
+Lastly, all that's left to do is bind the converter to the button's content. To do so import the namespace of the converter in the MainWindow.axaml file by adding the following line
``` xml
xmlns:convs="clr-namespace:how_to_show_and_hide_a_split_view_pane_with_mvvm.Models"
```
@@ -241,7 +241,7 @@ Now add the converter to the static resources of the Window by doing the followi
```
-Bind the button's content to the converter and pass as parameter to the converter the IsSplitViewPaneOpen property.
+Bind the button's content to the converter and pass the IsSplitViewPaneOpen property as a parameter to the converter.
``` xml