我正在開發一個MVVM WPF DataGrid應用程式。我有一個DataGrid和它上面的多選CheckBox下拉選單。每當我在選單中選擇一個選項時,我想在DataGrid中添加一個列。有什么方法可以做到這一點嗎?
uj5u.com熱心網友回復:
我最近在一個C# uwp應用程式中遇到了類似的問題。以下是對我有用的方法。
首先,我創建了一個串列來跟蹤所有被選中的復選框:
private List< CheckBox> checkedCheckboxes = new List<CheckBox> ();
然后,我創建了復選框,并像這樣將它們鏈接到相同的事件(你可能已經有了這部分的代碼):
foreach (foo blah in random)
{
var checkbox = new CheckBox(); //creating new checkbox
checkbox.Content = blah.name; //設定內容[/span
checkbox.Name = $"chk_{blah.name}"; //命名。
checkbox.Tag = "blah"; //add the tag。
checkbox.Checked = CheckBox_Checked; //add the checked event。
checkbox.Unchecked = CheckBox_Unchecked; //加入未選中的事件。
ClassCheckboxes.Add(checkbox)。
對于 "CheckBox_Checked "事件,我做了如下處理:
private void CheckBox_Checked(object sender, RoutedEventArgs e)。
{
checkedCheckboxes.Add((CheckBox)sender)。
//Here you can put some code to update your datagrid.
}
而對于 "CheckBox_Unchecked "事件,我做了如下處理:
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)。
{
checkedCheckboxes.Remove((CheckBox)sender)。
//Here you can put some code to update your datagrid.
}
要在你的資料表格中添加新列,你可以參考這個答案。那里有幾個不錯的策略,可能對你有用。這里是投票率最高的一個,以方便你使用:
DataGridTextColumn textColumn = new DataGridTextColumn()。
textColumn.Header = "First Name";
textColumn.Binding = new Binding("FirstName"/span>)。
dataGrid.Columns.Add(textColumn)。
如果我在這里做錯了什么,請原諒,這是我第一次發布答案,所以對我來說很容易 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324483.html
標籤:
上一篇:比較2個字串模板

