私は WPF を初めて使用し、データ バインディングを使用してウィンドウのコントロールをコード ビハインドのオブジェクトにバインドする方法を理解しようとしています。コード ビハインドから XAML オブジェクトにアクセスすることについていくつか質問がありますが、それは私が探しているものではありません。私はすでにそれを行う方法を知っています。
label1.Content = LabelText;
listbox1.ItemsSource = ListItems;
XAML からコード ビハインドでクラスにアクセスする方法についての回答も見ました。
<local:MyClass x:Key="myClass" />
しかし、それをクラスの特定のインスタンスに適用する方法がわかりません。これが私がやろうとしていることの例です。「バインディング」は明らかに間違っています。それが私が助けを必要としているものです。
public partial class MainWindow : Window
{
private string _labelText;
private List<string> _listItems = new List<string>();
public MainWindow()
{
InitializeComponent();
_labelText = "Binding";
_listItems.Add("To");
_listItems.Add("An");
_listItems.Add("Object");
}
public string LabelText
{
get { return _labelText; }
set { _labelText = value; }
}
public List<string> ListItems
{
get { return _listItems; }
set { _listItems = value; }
}
}
<Window x:Class="SO_Demo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SO Demo" Height="160" Width="225">
<Grid DataContext="MainWindow">
<Label x:Name="label1" Width="80" Height="25" Margin="12,12,0,0"
Content="{Binding Path=LabelText}"
HorizontalAlignment="Left" VerticalAlignment="Top" />
<ListBox x:Name="listbox1" Width="100" Height="60" Margin="12,44,0,0"
ItemsSource="{Binding Path=ListItems}" DisplayMemberPath="ListItems"
HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
</Window>
私が読んだ本やチュートリアルでは、これは非常に単純であるように思えます。私は何が欠けていますか?