特定のコードに関する質問ではありません。データ バインディングがDataTemplate
. これは単なるコード ブロックの例です。3 つの属性を持つクラスを定義しましたClient
(これらの属性の目的は質問とは関係ありません)。
public class Client
{
public bool Powered { get; set; }
public bool clientAlive { get; set; }
public bool updaterAlive { get; set; }
}
ListView
クライアントのリストを使用してデータを入力します。
List<Client> clientList = new List<Client>();
//populate the list from JSON url, code omitted
listView1.ItemsSource = clientList;
ListView に項目を表示するためのテンプレートを保持する XAML コードのブロックを次に示します。
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="Powered: " FontWeight="Bold" />
<TextBlock Text="{Binding Powered}" />
<TextBlock Text=", " />
<TextBlock Text="clientAlive: " FontWeight="Bold" />
<TextBlock Text="{Binding clientAlive}" />
<TextBlock Text=", " />
<TextBlock Text="updaterAlive: " FontWeight="Bold" />
<TextBlock Text="{Binding updaterAlive}" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
コードは正常に実行され、すべてが期待どおりに表示されます。WPF でデータ バインディングがどのように機能するかを誰かが説明できるかどうか疑問に思っていました。私に関する限り、XAML にはClient
クラスを参照するものは何もなく、バインディングが指定するプロパティを表示することを XAML がどのように認識しているかについて混乱しています。Text = "{Binding = Powered}"
リストに入力する項目タイプ内のバインディングに一致する属性を探すだけですか?