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
}
}
}