Кажется, отлично работает с моим примером проекта:
Window1 XAML:
<Window x:Class="WpfApplication7.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WpfApplication7="clr-namespace:WpfApplication7"
Title="Window1" Height="300" Width="300">
<Grid>
<ListBox x:Name="myListbox">
<ListBox.ItemTemplate>
<DataTemplate>
<WpfApplication7:ContactView/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Window>
ContactView XAML (код не требуется;)):
<UserControl x:Class="WpfApplication7.ContactView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Border>
<DockPanel>
<StackPanel DockPanel.Dock="Right" Orientation="Vertical">
<TextBlock Text="{Binding Path=ContactFirstName, FallbackValue=FirstName}" FontWeight="Bold" Margin="5, 0, 5, 0"></TextBlock>
<TextBlock Text="{Binding Path=ContactLastName, FallbackValue=LastName}" FontWeight="Bold" Margin="5, 0, 5, 0"></TextBlock>
<TextBlock Text="{Binding Path=ContactNumber, FallbackValue=Number}" Margin="5, 0, 5, 0"></TextBlock>
</StackPanel>
</DockPanel>
</Border>
</UserControl>
Код для Window1:
public partial class Window1
{
public Window1()
{
InitializeComponent();
myListbox.ItemsSource = new[]
{
new Contact { ContactFirstName = "Stack", ContactLastName = "Overflow", ContactNumber = 1 },
new Contact { ContactFirstName = "Stack", ContactLastName = "Overflow", ContactNumber = 2 },
new Contact { ContactFirstName = "Stack", ContactLastName = "Overflow", ContactNumber = 3 },
};
}
}
public class Contact
{
public string ContactFirstName { get; set; }
public string ContactLastName { get; set; }
public int ContactNumber { get; set; }
}
Я думаю, что ваша проблема связана с предметами в вашем ItemsSource. Убедитесь, что вы привязываете к правильному свойству. Объекты «Мой контакт» имеют правильные свойства. Возможно, ваши объекты в вашем ItemsSource имеют разные имена свойств? Или у этих объектов есть свойство Contact, которое содержит нужные свойства?
Если у вас есть свойство Contact в ваших объектах ItemsSource, вы можете использовать привязку к TextBlock следующим образом (обратите внимание на точку):
<TextBlock Text="{Binding Path=Contact.FirstName}" FontWeight="Bold" Margin="5, 0, 5, 0"></TextBlock>
Надеюсь, это поможет немного уточнить, в чем заключается ваша проблема!