2 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.ComponentModel;
19 using System.Globalization;
20 using Tizen.NUI.BaseComponents;
21 using Tizen.NUI.Binding;
23 namespace Tizen.NUI.Devel.Tests
25 public class FloatToBoolConverter : IValueConverter
27 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
29 return (float)value != 0;
32 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
34 return (bool)value ? 1 : 0;
38 public class BoolToObjectConverter<T> : IValueConverter
40 public T TrueObject { set; get; }
42 public T FalseObject { set; get; }
44 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
46 return (bool)value ? TrueObject : FalseObject;
49 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
51 return ((T)value).Equals(TrueObject);
55 public class FloatToIntConverter : IValueConverter
57 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
59 return (int)Math.Round((float)value * GetParameter(parameter));
62 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
64 return (int)value / GetParameter(parameter);
67 float GetParameter(object parameter)
69 if (parameter is float)
71 return (float)parameter;
73 else if (parameter is int)
75 return (int)parameter;
77 else if (parameter is string)
79 return float.Parse((string)parameter);
86 public class RgbColorViewModel : INotifyPropertyChanged
91 public event PropertyChangedEventHandler PropertyChanged;
99 Color = new Color(value, color.G, color.B, 1.0f);
113 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Red"));
114 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Color"));
129 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Name"));
136 public partial class BindingSample : View
138 public BindingSample()
140 global::Tizen.NUI.Xaml.Extensions.LoadFromXaml(this, typeof(BindingSample));