将WPF内部绑定的控件和数据拉取出来
一般最简单的ItemsControl的写法是
<ItemsControl ItemsSource="{Binding Students}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
后台写
public class ListDemoViewModel:BindableBase
{
private ObservableCollection<Student> _students;
public ObservableCollection<Student> Students
{
get => _students;
set => SetProperty(ref _students, value);
}
public ListDemoViewModel()
{
Students = new ObservableCollection<Student>() { new Student() { Name = "123" } };
}
但是以后数据模板和控件模板都会变得很复杂,如果我们把绑定同时写在一个xaml,那么这个xaml会显得异常臃肿。
1、先说数据的绑定,我们把上面的Name提取出去,放在一个新建的UserControl
可以写
<TextBlock Text="{Binding Students[0].Name}">
<TextBlock.DataContext>
<viewModel:ListDemoViewModel/>
</TextBlock.DataContext>
</TextBlock>
主界面改为
<ItemsControl ItemsSource="{Binding Students}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:GroupBoxView/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
本文作者:孤沉
本文链接:https://www.cnblogs.com/guchen33/p/18289941
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步