WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

本文介绍了在WPF中,DataTemplate中的ComboBox控件在Window_Loaded事件中加载机制的问题及解决方案。作者通过实践发现,ListView中ComboBox的数据源在初始加载时不正确绑定,原因是ListView项在进入显示区域时才会加载。为解决此问题,作者通过C#代码强制加载所有ComboBox,并提供了一个完整示例。同时,文中也提及了ComboBox数据源在滚动时可能丢失的问题。
摘要由CSDN通过智能技术生成

        最近因为项目需要,开始学习如何使用WPF开发桌面程序。使用WPF一段时间之后,感觉WPF的开发思维和Winform还是有比较大的区别,包括页面布局、数据绑定、自定义模板等等。

      整个项目中,有一个业务逻辑的实现方式,需要我在使用Listview控件中插入Combobox控件,效果如下图:

       第一次尝试:为了实现这个效果,我在Xaml文件中定义的代码如下:

1.资源模板定义Xaml语句

<Window.Resources>
        <namespc:ListViewItemStyleSelector x:Key="mySelector"/>
        <DataTemplate x:Key="FirstCell" >
            <ComboBox Name="combobox"    Width="80"  />
        </DataTemplate>
    </Window.Resources></span></span>

2.Listview定义Xaml语句:

<ListView Name="listview1" Margin="5" ItemContainerStyleSelector="{DynamicResource mySelector}" 
             SelectionChanged="listview1_SelectionChanged"  
             PreviewMouseDoubleClick="listview1_PreviewMouseDoubleClick">
       <ListView.View>
           <GridView>
               <GridViewColumn Header="料品编码" DisplayMemberBinding="{Binding Path=II_Code}" ></GridViewColumn>
               <GridViewColumn Header="料品名称" DisplayMemberBinding="{Binding Path=II_Name}" ></GridViewColumn>
               <GridViewColumn Header="料品规格" DisplayMemberBinding
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值