我需要在xaml / code中更改哪些内容才能使绑定properties => SchoolclassName and LessonName
同时适用于TextBlock
?我没有得到Binding错误,但我没有看到任何显示:
<Grid Margin="20" Height="300" Background="AliceBlue">
<ListView ItemsSource="{Binding Timetable}">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Period"
DisplayMemberBinding="{Binding LessonPeriod}"/>
<GridViewColumn Header="Monday">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding Monday}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Width="150" Orientation="Horizontal">
<TextBlock Text="{Binding LessonName}"/>
<TextBlock Text=" "/>
<TextBlock Text="{Binding SchoolclassName}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
public partial class Window1 : Window
{
List<TimetableEntry> _timetable = new List<TimetableEntry>();
public List<TimetableEntry> Timetable
{
get { return _timetable; }
set { _timetable = value; }
public Window1()
{
InitializeComponent();
_timetable.Add(new TimetableEntry()
{
LessonPeriod = "Period 1",
Monday = new TimetableDay()
{
LessonName = "Maths" ,
SchoolclassName = "1c",
},
}
);
this.DataContext = this;
}
public class TimetableEntry
{
public string LessonPeriod { get; set; }
public TimetableDay Monday { get; set; }
public TimetableDay Tuesday { get; set; }
public TimetableDay Wednesday { get; set; }
public TimetableDay Thursday { get; set; }
public TimetableDay Friday { get; set; }
public TimetableDay Saturday { get; set; }
public TimetableDay Sunday { get; set; }
}
public class TimetableDay
{
public string LessonName { get; set; }
public string SchoolclassName { get; set; }
}
public class TimetableLesson
{
public string LessonName { get; set; }
public string SchoolclassName { get; set; }
public DateTime LessonTime { get; set; }
}
}
答案 0 :(得分:1)
您将内部ListView的ItemsSource设置为Monday属性。但是星期一是TimetableDay,而不是集合,所以内部列表视图没有“列表”可以枚举。
您可能只想摆脱内部ListView,并使用Monday属性的子属性直接将TimeTemplate绑定到TimetableEntry:
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Width="150" Orientation="Horizontal">
<TextBlock Text="{Binding Monday.LessonName}" /> <!-- note multipart path -->
<TextBlock Text=" " />
<TextBlock Text="{Binding Monday.SchoolclassName}" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>