/// 获得指定元素的所有子元素(这里需要有一个从DataTemplate里获取控件的函数)
///
///
///
///
public List
GetChildObjects(DependencyObject obj, string name) where T : FrameworkElement
DependencyObject child = null;
List childList = new List();
for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
child = VisualTreeHelper.GetChild(obj, i);
if (child is T && (((T)child).Name == name || string.IsNullOrEmpty(name)))
childList.Add((T)child);
childList.AddRange(GetChildObjects<
1、获取控件中子控件方法/// <summary> /// 获得指定元素的所有子元素(这里需要有一个从DataTemplate里获取控件的函数) /// </summary> /// <typeparam name="T"></typeparam> /// <param na...
在项目开发
中
,遇到一大片的
CheckBox
控
件,需要实现全选、反选,一个个写是不太实际的,这时候,我们就可以选择用遍
历
控
件的方式来解决。
全选:遍
历
的
控
件是
CheckBox
,就给它赋值IsChecked= true
反选:遍
历
的
控
件是
CheckBox
,就让它的IsChecked值取反
Xaml的代码就不放出来了,就是一个Grid,Name="content",里面全是
CheckBox
,后面再...
在
WPF
实际项目开发的时候,经常会用到带
CheckBox
的TreeView,虽然微软在
WPF
的TreeView
中
没有提供该功能,但是微软在
WPF
中
提供强大的ItemTemplate模板功能和自定义样式,那我们可以自己写一个这样的
控
件供自己使用。
我自己写的这个比较简单。
首先写一个供TreeView使用的数据模型,并且实现INotifyPropertyChanged接口,用于向客户端(通常是...
在Win7的资源管理器
中
,如果我们选
中
【文件夹选项】->【查看】->【文件和文件夹】->【使用复选框以选择项】。则可通过列表项上的复选框实现多选,而不再需要按【Ctrl】或【Shift】键。
WPF
中
没有对应的
控
件,但是利用
WPF
我们可以比较容易实现此功能。讨论
首先,
CheckBox
的选
中
状态应该和
ListView
Item的选
中
状态保持一致,故需要将
CheckBox
的I...
在最近的WP项目
中
要导入手机联系人,并且可以勾选添加(WP访问联系人这里不说了),开始设计是,外面ListBox,在DataTemplate
中
添加
CheckBox
,当然界面设计完全没问题也很漂亮,但是到后台要读取数据的时候我发现不知所措了,纠结了1个多小时没想到怎么做,最后使用了ListBoxWith
CheckBox
es代替我之前的,结果使用起来很简单,很方便。
但是最近我在无意间看到...
WPF
中
的 DataGrid 和
ListView
都没有内置的分页
控
件,但可以通过一些方法来实现分页功能。
一种实现方式是使用 CollectionView,它是用于对集合进行排序、过滤和分组的类。可以使用 CollectionViewSource 创建 CollectionView,并在 XAML
中
绑定到分页
控
件
中
。
以下是一个示例,其
中
使用 CollectionViewSource 来创建 CollectionView,并将其绑定到
ListView
控
件
中
:
```xml
<Grid.Resources>
<CollectionViewSource x:Key="cvs" Source="{Binding Items}" PageSize="10"/>
</Grid.Resources>
<
ListView
ItemsSource="{Binding Source={StaticResource cvs}}" />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Content="Prev" Command="{Binding Source={StaticResource cvs}, Path=PageUpCommand}" />
<TextBlock Text="{Binding Source={StaticResource cvs}, Path=PageIndex}" />
<Button Content="Next" Command="{Binding Source={StaticResource cvs}, Path=PageDownCommand}" />
</StackPanel>
</Grid>
在上面的示例
中
,CollectionViewSource 用于创建 CollectionView,并使用 PageSize 属性来指定每页的项数。
ListView
控
件绑定到 CollectionViewSource
中
的 CollectionView。
同时,使用按钮来切换分页,每个按钮都绑定到 CollectionViewSource
中
的 PageUpCommand 和 PageDownCommand 命令,以便在前一页和后一页之间切换。
还有其他的实现方式,例如手动分页和使用第三方分页
控
件等等。具体实现方式可以根据项目需求来选择。