(C WPF)DataGrid反轉行選擇

2021-10-06 12:06:31 字數 1275 閱讀 9291

好吧,今天,我遇到了程式設計生涯中迄今為止最奇怪的問題之一,我正在構建乙個與檔案瀏覽器完全不同的應用程式,並且我需要反轉

datagrid控制項,您說的很簡單嗎?

好好嘗試一下,您很快就會遇到相同的問題。

問題是,沒有指定的方法可以執行此操作,此外,在google上進行的搜尋顯示,還沒有多少人需要這樣做,所以我不得不自己編寫例程,這種見解是我努力的結果,希望沒有其他人需要花費數小時來嘗試做同樣的事情。

首先,我們假設

我們正在使用的datagrid繫結到名為dummydataitem的類的列表,如下所示:

classdummydataitem

public dummydataitem(string name)

}

好的,這是我嘗試的第一種方法...

public void inverta()

else}}

乍一看,這種方法似乎是完全合理的,我們進行了輕描淡寫,以便可以檢查是否選擇了該行,然後逐項將其反轉。 但是,執行一下,您很快就會在

datagrid中居然無法轉換為datagridrow!嗯,我們必須嘗試其他方法...

public void invertb()

}

var selected 「實際上僅引用選定的專案。這意味著當我們遍歷選定的專案時,列表已更改,並且在迴圈期間不斷變化,因此無法使用它。

最後的工作方式,從我的上乙個示例中,您可以看到我們已經到了一半,但是我們需要使用乙個引用列表,該列表在反轉時不會改變。 因此,如果我們將每個選中的專案強制轉換為它的基類,並新增乙個class屬性

最好是乙個字串,因為字串只能讀到乙個列表中,我們可以跟蹤從選擇中刪除哪些專案(全部選中後)。

public void invertc()

datagrid1.selectall();

foreach (object z in datagrid1.items)}}

在這個例子中,我們從每個

當前選中的dummydataitem,選擇所有專案,然後根據名稱比較選擇哪些專案不屬於datagridselecteditems屬性。

目前,這似乎是完成此任務的最明智的方法,我希望有人覺得這很有用,如果有人有更好的解決方案,請隨時與他們分享。

艾公尺·貝利(aimee bailey)。

from:

C WPF DataGrid獲取當前行某列值

0 是指當前行第1列的單元格位置 方法一 private void dg selectedcellschanged object sender,selectedcellschangedeventargs e system.nullreferenceexception 未將物件引用設定到物件的例項。b...

c WPF DataGrid 獲取選中單元格資訊

private void dg selectedcellschanged object sender,selectedcellschangedeventargs e private void button click object sender,routedeventargs e private v...

hive 列轉行 HQL 行轉列,列轉行

1 相關函式 concat string a col,string b col 返回輸入字串連線後的結果,支援任意個輸入字串 concat ws separator,str1,str2,它是乙個特殊形式的 concat 第乙個引數剩餘引數間的分隔符。分隔符可以是與剩餘引數一樣的字串。如果分隔符是 n...