Я начинаю понимать привязку данных XAML и использую DataTemplate, и это довольно приятно.
Каков наилучший способ сделать следующий шаг и вставить логику в приведенный ниже код,
например посмотрите, есть ли что-то в «Address2» и, если да, отобразите это,
или по-разному форматировать внешние адреса и т. д.? 1003 *
<Window.Resources>
<DataTemplate x:Key="CustomersTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="35"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Rectangle Height="30" Width="30" Margin="0 4 0 0" Fill="LightGreen" Grid.Column="0" VerticalAlignment="Top"/>
<StackPanel Margin="3 0 0 10" Orientation="Vertical" Grid.Column="1">
<TextBlock Text="{Binding Path=ContactName}"/>
<TextBlock Text="{Binding Path=CompanyName}"/>
<TextBlock Text="{Binding Path=Address}"/>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1} {2}">
<Binding Path="City"/>
<Binding Path="Region"/>
<Binding Path="PostalCode"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox Name="dataListBox" ItemTemplate="{StaticResource CustomersTemplate}"/>
</Grid>
Вот код для полноты (автоматически сгенерированные классы LINQ to SQL на Northwind):
CustomerDataContext dc = new CustomerDataContext();
var query = from companyName in dc.Customers
select companyName;
dataListBox.ItemsSource = query.ToList();