簡體   English   中英

為什么有些屬性無法訪問

[英]Why are some properties unaccessable

我試圖獲取編輯后在 DataGrid 單元格中寫入的文本,因此我在 function CellEditEnding 中放置了一個斷點並查看了 EventArgs 並注意到它包含屬性“文本”,因此我不必做通常的 XAML 綁定黑客來獲得它。

文本屬性

但是,我很快注意到它不會讓我訪問它。 嘗試訪問 Text 屬性時出錯

看了一下FrameworkElement class,可以確定沒有Text屬性,這是怎么回事,為什么不能訪問該屬性?

為什么我不能訪問該屬性?

因為FrameworkElement確實沒有Text屬性。

派生自FrameworkElementTextBox具有Text屬性,因此您可以將EditingElement轉換為TextBox然后訪問該屬性:

string text = (e.EditingElement as TextBox)?.Text;

Visual Studio 在 memory 中顯示實際 object 的屬性。

將 UI 用作數據存儲並嘗試直接使用它不是一個好主意。

您應該將 t 的 observablecollection 綁定到數據網格的 itemssource 並使用 t 的每個實例。

這將更容易使用。

至於為什么有些屬性無法訪問?

這是因為這些屬性並不在您認為的位置。 DatagridCell 中嵌套了一系列內容。

DataGridCell > 邊框 > ContentPresenter > TextBlock

下載 snoop https://github.com/snoopwpf/snoopwpf或使用 chocolatey / 你喜歡的方法安裝。

運行窺探。

運行您的應用程序。

將正確的瞄准具拖到你身上 window。

一個 window 應該打開兩個面板。 控件和屬性。

將鼠標懸停在數據網格單元格上。

按 shift+ctrl,您應該會在 ui 樹中看到鼠標下選中的元素。

數據網格非常復雜,每一行中都有多個內容。

在此處輸入圖像描述

看到那個文本塊了嗎?

那就是具有文本屬性的東西。

或者至少當您不處於編輯模式時就是這樣。

切換到編輯模式,我有一個 TextBoxView。

所以一個復雜的問題是,你在給定的時間和誰一起工作?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM