Не какой-то конкретный кодовый вопрос, я просто хочу лучше понять, как работает привязка данных в DataTemplate
. Вот пример блока кода; Я определил Client
класс с тремя атрибутами (цель этих атрибутов не имеет никакого отношения к вопросу)WPF, Datatemplates и привязка данных
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;
А вот блок XAML-код, который содержит шаблон для отображения элементов в ListView:
<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}"
просто ищет атрибут, соответствующий привязке в типе элемента, который заполняет список?
Этот сайт посвящен вопросам и ответам. Лучше сформулировать его скорее как ответный вопрос. см. http://stackoverflow.com/faq#dontask – IvanH