1. 如何让c#winform 根据datagridview数据筛选 filter
微软自带的datagridview并没有filter功能,要么换个第三方控件,要么自己重新封装,自己实现。
2. wpf trigger property datagrid有哪些
你是想问wpf的datagrid控件有哪些属性? 简单列举一下:1、DataGrid 支持导出到Microsoft Excel ;2、DataGrid能够以小的或大的视图端口即时显示数据;3、DataGrid支持多种颜色设置;4、DataGrid支持拖拽分组;5、DataGrid支持条件过滤;6、DataGrid 支持导出到Microsoft Excel 的单元格合并;你可以参考下面的介绍http://www.gcpowertools.com.cn/procts/componentonewpf/datagrid.htm
3. c# datagrid 字段里的数据进行筛选。
如果你的每条记录都是固定格式的话,用模糊查询找出符合条件的记录后,对信息做截取就可以,但是如果不是固定格式就不太好做了。
4. WPF DataGrid 如何对选择的多行进行删除
。。 在WPF中也是一样的。。下面是一个解决方法。。。 前提条件: 窗体中有一个名为datagrid1的DataGrid, 点击一个button, 进行删除多行数据的操作 下面是主要代码:
5. WPF的DataGrid自动绑定数据库时最后的空列到底要怎么消除
将AutoGenerateColumns设置为false。然后在代码中手动生成不同表相对应的百分比列宽的与数据库表的列名对应的列。其余部分不变即可。
代码:
string attr = "";
dataDataGrid.AutoGenerateColumns = false;
MultiSecurity ms = new MultiSecurity();
OracleConnection oraCon = ms.CreateConnection("msdb", "maple", "manager");
foreach (string att in ms.getAttributes(tablename, oraCon)) //获取指定表的所有列
{
attr += att + ",";
dataDataGrid.Columns.Add(new DataGridTextColumn() { Header = att, Binding = new Binding(att), Width = new DataGridLength(2, DataGridLengthUnitType.Star) }); //为DataGrid生成百分比列宽的列,相当于xaml中设置Width = "2*"
}
attr = attr.Substring(0, attr.Length - 1);
sql = "select "+attr+" from " + node.Name; //生成查询指定列的sql语句
DataTable dt = ms.getData(sql, oraCon);
dataDataGrid.ItemsSource = dt.DefaultView; //将结果集绑定到DataGrid
6. WPF Datagrid及实现不可编辑又实现添加行
IsEnabled="False"
然后DataGrid.ItemsResource=“你的数据源”
或者你在需要加数据的时候
isReadOnly=“False”
datagrid1.CanUserAddRows.......
isReadOnly = "true"
就是在加添加行后再改变可编辑属性
7. wpf中datagrid控件选定一行,写了一个删除按钮,点击按钮应该怎样删除这行
WPF中你可以这样:定义一个DataTable,然后通过SQL从数据库中获取相关数据填充这个DataTable,并将其作为datagrid的数据源,具体可这样操作:
datagrid.ItemsSource = null;
datagrid.Items.Clear();
datagrid.ItemsSource = DataTable.DefaultView;
datagrid.SelectedValuePath = "主键字段名";
当选中datagrid中一项时,可以根据datagrid.SelectedValue(实际的值)去删除数据库相关的记录,然后再重新刷新datagrid的数据源。
不知道这样说,明白么?当然你也可以在页面通过xaml进行双向绑定操作集合来实现。
8. WPF Datagrid控件如何得到过滤之后的数据
直接foreach遍历你的ICollectionView即可
ICollectionView的GetEnumerator返回的遍历器遍历的就是filter以后的结果,SourceCollection属性才会返回原始数据
比如,界面上:
<DockPanel>
<ButtonClick="Button_Click"
Content="ShowItems"
DockPanel.Dock="Top"/>
<ListBoxItemsSource="{Binding}"/>
</DockPanel>
后台代码:
publicpartialclassMainWindow:Window
{
_dataSource;
publicMainWindow()
{
InitializeComponent();
_dataSource=newCollectionView(Enumerable.Range(0,10));
//只显示偶数
_dataSource.Filter=(i=>(int)i%2==0);
this.DataContext=_dataSource;
}
privatevoidButton_Click(objectsender,RoutedEventArgse)
{
varmsg=string.Join(",",_dataSource.OfType<int>());
MessageBox.Show("Itemsare: "+msg);
}
}
点按钮以后的结果:
9. wpf的dataGrid 怎么遍历他的所有单元格,如果包含某个字就改变背景色
遍历操作不建议对datagrid的单元格进行遍历,应当对其数据源进行遍历。
如果要针对某单元格的值来做相应处理,建议使用IConverter(转换器)
给个例子:
前台代码:
<DataGrid Name="dg" AutoGenerateColumns="False" RowHeaderWidth="0" SelectionUnit="Cell">
<DataGrid.Resources>
<local:ColorConvert x:Key="colorConvert"/>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=age}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=name}" Foreground="Black" Background="{Binding Converter={StaticResource colorConvert}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
后台代码:
public partial class BaiKnows : Window
{
public BaiKnows()
{
InitializeComponent();
List<People> peoplelist = new List<People>();
peoplelist.Add(new People() { age = 10, name = "linda" });
peoplelist.Add(new People() { age = 11, name = "tom" });
peoplelist.Add(new People() { age = 12, name = "peter" });
peoplelist.Add(new People() { age = 13, name = "mary" });
dg.ItemsSource = peoplelist;
}
}
class People
{
public int age { get; set; }
public string name { get; set; }
}
转换器代码:colorConvert.cs
namespace XXX
{
//定义值转换器
[ValueConversion(typeof(string), typeof(string))]
public class ColorConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
People strValue = value as People;
if (strValue != null && strValue.name == "peter")
{
return "Red";
}
return "White";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return "";
}
}
}
10. wpf:datagrid删除本行
datagrid的每行(DataGridRow以及DataGridCell的DataContext)都对应一个数据实体对象。Hyperlink的DataContext也应该是这个数据实体。你可以在Hyperlink_Click的事件中把datagrid绑定的数据实体集合删除选中的数据实体(也就是Hyperlink的DataContext)然后再重置datagrid的itemsSource即可。