簡體   English   中英

如何制作清單 <Object> 在Visual Studio中使用WPF時,變量是否出現在DataBinding UI中?

[英]How to make List<Object> variable appear in DataBinding UI when using WPF in Visual Studio?

我正在學習WPF,目前正在探索數據綁定。 我在表單上有一個DataGrid控件,在表單的C#代碼中,我有一個List<string>變量。

我希望能夠在設計器中使用DataGrid的Properties UI將List<string>綁定到DataGrid 我無法弄清楚我需要做什么或需要在UI中查看的位置。

這就是我在做什么:

  1. 在UI設計器中單擊我的DataGrid ,使其成為活動控件。
  2. 移至“ Properties窗口。
  3. 向下滾動到ItemsSource屬性。
  4. 單擊該字段,然后彈出帶有“源”,“路徑”,“轉換器”和“選項”的UI。

當我到達這一點時,我不再知道該怎么辦。

我不想通過編寫/修改XAML來實現此目的。 我想知道如何使用UI。

我以前從未使用過設計師,所以不能完全確定(您的用例也不十分清楚)。

話雖這么說,在我的設計師你

  1. 將“綁定類型”設置為“數據上下文”
  2. 選擇“自定義”文本框(對我來說是必須的,因為它看不到我的DataContext)
  3. 在“路徑”字段中輸入屬性的名稱(您只能綁定到屬性)
  4. 點擊確定。

請注意,這與使用XAML編寫相同:

<DataGrid ItemsSource="{Binding MyItemCollection}"/>
<!-- or --!>
<DataGrid ItemsSource="{Binding Path=MytItemsCollection}"/>

沒有人使用設計師是有原因的。

其他選項是通常在ItemsSource屬性上不常用的“高級”綁定概念。

請注意, DataGrid是顯示字符串的不佳選擇。 ListViewListBox是更好的選擇,因為它們不假定您的信息有多個部分(就像DataGrid一樣)。

我理解不喜歡XAML,因為它起初確實嚇倒了我,但是我很快會說它是一個強大的工具。 我不確定如何通過設計器執行此操作,但是在C#中,假設您將DataGrid命名為“ myDataGrid”,而列表則命名為“ stringList”。 它很簡單,如下所示:

  myDataGrid.ItemsSource = stringList;

現在,數據網格已綁定到您的字符串列表。

感謝您提出問題! 屬性窗口被低估了。 首先,您必須設置DataContext。 它位於屬性窗口的公共部分。 將數據上下文設置為所需的任何視圖模型。 如果您沒有VM,並且列表位於后面的代碼中,則將數據上下文設置為相對源self。 在路徑的下一步中,輸入列表的名稱。 另外,您可能希望使用ObservableCollection而不是List,以便在對象更改時在UI中對其進行更新。

暫無
暫無

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

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