我想知道我是否可以创建一个ListPicker,它从数据模板中获取的项目和底部的一个稳定的项目组合在一起,并且始终存在。
这是我的代码:
<toolkit:ListPicker
x:Name="subjectTeacherListPicker"
ItemsSource="{Binding AllTeachers}"
Grid.Column="1"
Grid.Row="5">
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding TeacherName}"/>
<Run Text="{Binding TeacherSurname}"/>
</TextBlock>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
</toolkit:ListPicker>
我的意思是,对于上面的代码,我想在列表选择器中添加一个项目,该项目将以与所有项目相同的方式显示,但将被解决一次,无论如何都将保留在那里。例如,&#34;添加新教师..&#34;,即使没有其他项目也将被显示,将会被查看。
答案 0 :(得分:0)
因此,问题是您无法将不同的对象类型绑定到itemSource,因此您无法使用ListPicker
控件执行此操作。有一个被忽略的控件叫做ItemsControl
。这可以包含绑定到它的项目,并创建绑定对象的非滚动堆叠列表。将此控件与ScrollViewer
和StackPanel
结合使用可以获得所需的结果。
可以使用列表底部所需的按钮进行滚动。即使列表中没有数据,它也会一直存在。
实现这一目标的XAML如下:
<ScrollViewer Margin="5">
<StackPanel Orientation="Vertical">
<ItemsControl ItemsSource="{Binding AllTeachers}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding TeacherName}"/>
<Run Text="{Binding TeacherSurname}"/>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Button Content="Add teacher"/>
</StackPanel>
</ScrollViewer>
使用我提供的代码替换您的ListPicker
将为您提供一个非常好的起点,可以完成自定义ItemTemplate
以获得所需的项目。
如果您需要&#34;添加教师&#34;要成为其他控件,例如TextBlock
,只需更改控件并让其触发添加教师操作。
希望这有帮助!
亚当