とりあえず今バインドについて「こうだろう」と理解してること。
・バインドしたい変数にインテグサ(get;set;のアレ)を付ける
・WPFの場合、バインドするコントロールにNameで名前を付ける
・Bindingクラスをnewする
・Sourceにバインドしたい変数を保持してるクラス
・Pathにバインドしたい変数の名前を与える
・SetBindingでコントロールと変数を結び付けてバインド終了
MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Button x:Name="ChangeButton" Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75"/> <Label x:Name="TextLabel" Content="Label" HorizontalAlignment="Left" Margin="10,34,0,0" VerticalAlignment="Top"/> </Grid> </Window>
こんな感じでウィンドウ作って
Person.cs
namespace WpfApplication1 { public class Person { public string Name { get; set; } } }
こういうクラスを作る
MainWindow.xaml.cs
using System.Windows; using System.Windows.Controls; using System.Windows.Data; namespace WpfApplication1 { /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); //人物名 Person person = new Person(); person.Name = "クラウザー さん"; Binding bin = new Binding(); bin.Source = person; bin.Path = new PropertyPath("Name"); this.TextLabel.SetBinding(Label.ContentProperty, bin); } }
こんな感じで書いて実行すると
ラベルのところにちゃんとバインドされて表示されたみたいです。
ボタンの動作もバインドできるとかどうとか書いてあるけど、そこらへんはまだ。
何かいちいちめんどくさい感じが凄いんですよね。慣れでしょうけど。