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 luento13_2012 { [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; } } public class Henkilo { private string etunimi; private string sukunimi; public Henkilo() { etunimi = "John"; sukunimi = "Doe"; } public Henkilo(string etu, string suku) { Etunimi = etu; Sukunimi = suku; } public string Etunimi { get { return etunimi; } set { etunimi = value; } } public string Sukunimi { get { return sukunimi; } set { sukunimi = value; } } // uudelleenmääritellään ToString-metodi järkeväksi public override string ToString() { return etunimi + " " + sukunimi; } } class PositiveNumberRule : 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 <= 0) { return new ValidationResult(false, "Please enter a positive integer."); } else { return ValidationResult.ValidResult; } } } /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public List henkilot; private int p_luku = 0; public int Kokonaisluku { get { return p_luku; } set { p_luku = value; } } public MainWindow() { henkilot = new List(); henkilot.Add(new Henkilo()); henkilot.Add(new Henkilo("Tommi", "Lahtonen")); henkilot.Add(new Henkilo("Tomi", "Lahtonen")); henkilot.Add(new Henkilo("Tomppa", "Lahtonen")); henkilot.Add(new Henkilo("Jane", "Doe")); henkilot.Add(new Henkilo("Matti", "Meikäläinen")); henkilot.Add(new Henkilo("Maija", "Meikäläinen")); henkilot.Add(new Henkilo("Olli", "Opiskelija")); henkilot.Add(new Henkilo("Oona", "Opiskelija")); InitializeComponent(); listBox1.DataContext = henkilot; // asetetaan listboxin tietolähteeksi henkilöt. Lisäksi asetettava XAMLissa ItemsSource="{Binding}" // hyvä esimerkki: http://www.wblum.org/listbind/net3/index.html } } }