Я уверен, что это очень нубский вопрос для тех, кто имеет опыт привязки данных WPF, но я нуб. Так что заранее извиняюсь:
Я пытаюсь связать коллекцию объектов (IEnumerable) со списком, как показано ниже. Проблема в том, что когда мой тип LogEntry находится в том же пространстве имен (ActivityLog), что и мой «codebehind», я могу видеть свойства объекта, отображаемые в списке.
Тем не мение; когда тип LogEntry находится в другом пространстве имен (ActivityLog.Classes), в списке ничего не отображается.
Я попытался добавить пространство имен ActivityLog.Classes в разметку xaml (xmlns: local = "clr-namespace: ActivityLog.Classes"), но я уверен, что пропущен какой-то дополнительный шаг.
Пожалуйста, помогите.
namespace ActivityLog
{
public partial class LogPage : Window
{
public LogPage()
{
InitializeComponent();
List<LogEntry> leList = new List<LogEntry>() { new LogEntry() { StartDate=DateTime.Parse("2011-05-10 9:58:00"), ActivityDescription="Three" + Environment.NewLine},
new LogEntry() { StartDate=DateTime.Parse("2011-05-10 9:58:00"), ActivityDescription="Four" + Environment.NewLine}};
this.lstBox.ItemsSource = leList;
}
}
public class LogEntry
{
public DateTime StartDate { get; set; }
public string ActivityDescription { get; set; }
}
}
<Window x:Class="ActivityLog.LogPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ActivityLog.Classes"
Title="LogPage" Height="564" Width="414" >
<Grid>
<ListBox Width="361" Margin="20,50,0,0" ItemsSource="{Binding}" Name="lstBox" Height="429" VerticalAlignment="Top" HorizontalAlignment="Left">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=StartDate}"/>
<TextBlock Text="{Binding Path=ActivityDescription}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Window>