首页 > 其他分享 >将WPF内部绑定的控件和数据拉取出来

将WPF内部绑定的控件和数据拉取出来

时间:2024-07-08 15:20:51浏览次数:18  
标签:控件 ObservableCollection students 绑定 Students WPF public

一般最简单的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>

标签:控件,ObservableCollection,students,绑定,Students,WPF,public
From: https://www.cnblogs.com/guchen33/p/18289941

相关文章

  • WPF ComboBox数据绑定:初始化动态加载ItemsSource后首次赋值Text不显示问题解决
    原来:<ComboBoxText="{BindingItem}"ItemsSource="{BindingItemLists}"></ComboBox>privatevoidParas_Init(){ItemLists=newObservableCollection<string>();ItemLists.Add("111......
  • Simple WPF: WPF 实现按钮的长按,短按功能
    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。实现了一个支持长短按得按钮组件,单击可以触发Click事件,长按可以触发LongPressed事件,长按松开时触发LongClick事件。源码请自取:Github长按阈值属性的建立为了方便在xaml中使用,我们先配置一个DependencyProperty......
  • Halcon学习笔记(3):WPF 框架搭建,MaterialDesign+Prism
    目录前言环境Nuget安装新建WPF类库项目初始化PrismApp启动页初始化重写MainView前言其实我更喜欢CommunityToolkit.mvvm+HandyControl。但是因为找工作,你不能去抗拒新事物。这里就当体验一下完整的流程好了。环境windows11.netcore8.0Nuget安装新建WPF类库项目新......
  • Halcon 学习笔记(2):Halcon+WPF导入
    目录前言.netcore8.0.netcore8.0新功能,打开文件夹和打开文件HSmartWindowControlWPFSystem.Drawing.Common重置拉伸关闭拖拽和缩放文件导出前言这里补充一下Halcon导入到WPF的要求.netcore8.0Halcon是支持.netcore8.0导入的.netcore8.0新功能,打开文件夹和打开文件......
  • [QT入门]常用控件
    1.QPushButton(按钮)常用函数:setText(constQString&text):设置按钮上显示的文本。clicked(boolchecked=false)[signal]:按钮被点击时发出的信号。setIcon(constQIcon&icon):设置按钮上的图标。代码示例:QPushButton*button=newQPushButton("ClickMe!",th......
  • Simple WPF: WPF 自定义按钮外形
    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。WPF的按钮提供了Template模板,可以通过修改Template模板中的内容对按钮的样式进行自定义,完整代码Github自取。使用Style定义扁平化的按钮样式定义一个ButtonStyleDictonary.xaml资源字典文件,在ControlTemplate......
  • WPF Behavior InvokeCommandAction Command CommandParameter
    //xaml<behavior:Interaction.Triggers><behavior:EventTriggerEventName="MouseWheel"SourceObject="{BindingElementName=img}"><behavior:InvokeCommandActionCommand="{BindingMouseWheelCmd}"......
  • 【Java探索之旅】多态:重写、动静态绑定
    文章目录......
  • 在Linux中,当你需要给命令绑定⼀个宏或者按键的时候,应该怎么做呢?
    在Linux中,给命令绑定一个宏或者按键通常涉及到使用shell的内置命令或者编辑器(如vim)的宏定义功能。以下是详细的步骤和方法:1.使用bash的bind命令bashshell的bind命令允许你更改bash对键盘上按下的键和键组合的响应方式,从而实现宏或按键的绑定。基本步骤查找按键的字符序列:......
  • 【QT】显示类控件
    显示类控件显示类控件1.label-标签2.LCDNumber-显示数字的控件3.ProgressBar-进度条4.CalendarWidget-日历5.LineEdit-输入框6.TextEdit-多行输入框7.ComboBox-下拉框8.SpinBox-微调框9.DateEdit&TimeEdit-日期微调框10.Dial-旋......