1. WPF中使用datagrid顯示資料庫裡面的內容
這是一個小技巧啦。在Grid的最後一列,比如你圖上的「password」列,將這個列的寬度不設定為固長,而是設為自適應寬度(*)就可以了。
2. wpf 中 DataGrid有沒屬性 可以顯示當前有多少行數據 我想要的結果是 實時更新這個數字
呃.....
你么看懂我寫的代碼嗎?
我只是把自帶的cs文件當成vm來用而已啊....
關鍵只是this.DataContext = this;這句話啊...
this.DataContext = this;
↑ ↑
這個this是畫面 這個this其實是vm,只是不想再寫個類了....
標準的MVVM 仔細看看...
我改一下你就理解了
其實 你這個問題的解決辦法很簡單
就是在你的模糊查詢的到結果後
1把結果槐旦集的count付值給綁定label.Content屬性的那個屬性上(我這里就是SelectedCount屬性),你的模糊查詢在vm里完成,那個屬性當然也在vm里... 必須的...
2然後調用INotifyPropertyChanged.PropertyChanged通知畫面更新 就可以了
順便說一句 應該就是程序往畫面的更新 所以綁定mode應該是Oneway
-----------------------------------------------------------------------------
修改後:
Xaml文件里:
<Label Content="{Binding SelectedCount, Mode=OneWay}"/>
vm.cs文件里:
public partial class ViewModel: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public ViewModel()
{
}
private int _selectedCount;
public int SelectedCount
{
get { return _selectedCount; }
set
{
_selectedCount = value;
NotifyPropertyChanged("SelectedCount");
}
}
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
private DataTable SelectData(string _where)
{
//這里是你的模糊查詢方法
DataTable table = mySelector.Select(_where);
/凳銷/這里給你的Label賦棗明游值
SelectedCount = table.Count;
//把結果集返回去綁定Grid
return table
}
}
------------------------------------------------------------------------
修改前:
Xaml文件里:
<Label Content="{Binding SelectedCount, Mode=TwoWay}"/>
cs文件里:
public partial class MainWindow:Window,INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public MainWindow()
{
this.DataContext = this;
//這里設置好條件後查詢,查詢出幾條
DataTable table = mySelector.Select("mySQL");
int _count = table.Rows.Count;
//這里給你的Label賦值
SelectedCount = _count;
}
private int _selectedCount;
public int SelectedCount
{
get { return _selectedCount; }
set
{
_selectedCount = value;
NotifyPropertyChanged("SelectedCount");
}
}
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}
只些了關鍵代碼
3. C# winForm 將datagridview 控制項中的數據(大約有六千行甚至更多),導入到listview中顯示時,卡死了。
使用控制項的begininvoke和endinvoke,非同步操作,不要直接使用ui線程 ,具體請自己msdn
4. winform DataGridView 大數據量 和 虛擬模式實例。該怎麼處理
可以選擇分頁操作的
wpf倒是有數據虛擬化,首先實現滾動條,然後滾動到元素後,再構造視版圖,離開權後,釋放視圖,繼承了虛擬化方法的控制項都可以實現;
winform只能靠自己去實現了,我覺得你現在的實力不夠實現象wpf那樣的虛擬化,光是不載入元素而模擬出滾動條都有點難度,分頁吧,也是最常用的手段了;
5. wpf datagrid 怎麼增加數據行
首先需要弄清楚的是datagrid是用來呈現後台綁定的數據集合的。所以樓主想增加datagrid里的數據的話,可以直接通過添加後台數據來實現。wpf里綁定方式有許多種,默認為單向綁定。即後台數據變化,前台不會刷新神沖。毀瞎談前台做了某些交互,後台也不會發生數據的變化。當然,如果只需要完成樓主的意圖:即後台纖碰數據刷新,前台表格刷新的話,只需要將後台的數據實體實現INotifyPropertyChanged介面就可以了。