using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Globalization; namespace ohjaus4 { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private List autot = new List(); private int laskuri; public MainWindow() { InitializeComponent(); for (int i = 0; i < 5; i++) { // laiska ei jaksa kirjoittaa autoja ;) autot.Add( new Auto() ); } } private void buttonLaskuri_Click(object sender, RoutedEventArgs e) { laskuri++; labelLaskuri.Content = laskuri.ToString(); } // tavallisiin propertyihin voi bindata vain kirjoittaakseen niihin jotain. Muutokset eivät päivity xamlin suuntaan! public int Min { get; set; } public int Max { get; set; } public List Autot { get { return autot; } set { autot = value; } } } [ValueConversion(typeof(bool), typeof(Visibility))] public class BoolToVisibilityConverter : IValueConverter { // muunnos bool-tyypistä visibility-tyyppiin public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool arvo = (bool)value; if (arvo) return Visibility.Visible; return Visibility.Hidden; } // muunnos visibility-tyypistä bool-tyyppiin public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { Visibility arvo = (Visibility)value; if (arvo == Visibility.Hidden) return false; if (arvo == Visibility.Collapsed) return false; return true; } } class NumberRangeRule : ValidationRule { public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo) { int luku = 0; try { luku = Convert.ToInt16(value); ; } catch (FormatException) { return new ValidationResult(false, "Value is not a valid integer."); } if (luku < 1) { return new ValidationResult(false, "Please enter an integer greater than 0."); } if (luku > 100) { return new ValidationResult(false, "Please enter an integer less than 100."); } return ValidationResult.ValidResult; } } public class Auto { private string p_merkki; private int p_ajetut_km; private int p_vuosimalli; public Auto() { Merkki = "Mazda"; Km = 10000; Vuosimalli = 1900; } public Auto(string m="Mazda", int km=10000, int vuosi=1900) { Merkki = m; Km = km; Vuosimalli = vuosi; } public string Merkki { get { return p_merkki; } set { p_merkki = value; } } public int Km { get { return p_ajetut_km; } set { if (value >= 0) p_ajetut_km = value; } } public int Vuosimalli { get { return p_vuosimalli; } set { if (value > 1900) p_vuosimalli = value; } } public override string ToString() { return Merkki + ", " + Vuosimalli.ToString() + ", " + Km.ToString(); } } }