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即可。