Pārlūkot izejas kodu

Test binding negation in BindingTest.

Steven Kirk 10 gadi atpakaļ
vecāks
revīzija
a5ec3588c5

+ 12 - 5
samples/BindingTest/MainWindow.paml

@@ -1,15 +1,22 @@
 <Window xmlns="https://github.com/perspex">
   <StackPanel Orientation="Horizontal">
     <StackPanel Margin="18" Gap="4" Width="200">
-      <TextBlock Text="{Binding SimpleBinding}"/>
-      <TextBox Watermark="Two Way" UseFloatingWatermark="True" Text="{Binding SimpleBinding}"/>
-      <TextBox Watermark="One Way" UseFloatingWatermark="True" Text="{Binding SimpleBinding, Mode=OneWay}"/>
-      <TextBox Watermark="One Time" UseFloatingWatermark="True" Text="{Binding SimpleBinding, Mode=OneTime}"/>
-      <TextBox Watermark="One Way To Source" UseFloatingWatermark="True" Text="{Binding SimpleBinding, Mode=OneWayToSource}"/>
+      <TextBlock FontSize="16" Text="Simple Bindings"/>
+      <TextBox Watermark="Two Way" UseFloatingWatermark="True" Text="{Binding StringValue}"/>
+      <TextBox Watermark="One Way" UseFloatingWatermark="True" Text="{Binding StringValue, Mode=OneWay}"/>
+      <TextBox Watermark="One Time" UseFloatingWatermark="True" Text="{Binding StringValue, Mode=OneTime}"/>
+      <TextBox Watermark="One Way To Source" UseFloatingWatermark="True" Text="{Binding StringValue, Mode=OneWayToSource}"/>
     </StackPanel>
     <StackPanel Margin="18" Gap="4" Width="200">
+      <TextBlock FontSize="16" Text="Collection Bindings"/>
       <TextBox Watermark="Items[1].StringValue" UseFloatingWatermark="True" Text="{Binding Items[1].StringValue}"/>
       <Button Command="{Binding ShuffleItems}">Shuffle</Button>
     </StackPanel>
+    <StackPanel Margin="18" Gap="4" Width="200">
+      <TextBlock FontSize="16" Text="Negated Bindings"/>
+      <TextBox Watermark="Boolean String" UseFloatingWatermark="True" Text="{Binding BooleanString}"/>
+      <CheckBox IsChecked="{Binding !BooleanString}">!BooleanString</CheckBox>
+      <CheckBox IsChecked="{Binding !!BooleanString}">!!BooleanString</CheckBox>
+    </StackPanel>
   </StackPanel>
 </Window>

+ 11 - 4
samples/BindingTest/ViewModels/MainWindowViewModel.cs

@@ -6,7 +6,8 @@ namespace BindingTest.ViewModels
 {
     public class MainWindowViewModel : ReactiveObject
     {
-        private string _simpleBinding = "Simple Binding";
+        private string _booleanString = "True";
+        private string _stringValue = "Simple Binding";
 
         public MainWindowViewModel()
         {
@@ -28,10 +29,16 @@ namespace BindingTest.ViewModels
         public ObservableCollection<TestItem> Items { get; }
         public ReactiveCommand<object> ShuffleItems { get; }
 
-        public string SimpleBinding
+        public string BooleanString
         {
-            get { return _simpleBinding; }
-            set { this.RaiseAndSetIfChanged(ref _simpleBinding, value); }
+            get { return _booleanString; }
+            set { this.RaiseAndSetIfChanged(ref _booleanString, value); }
+        }
+
+        public string StringValue
+        {
+            get { return _stringValue; }
+            set { this.RaiseAndSetIfChanged(ref _stringValue, value); }
         }
     }
 }