亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SelectedItem、SelectedValue和SelectedValuePath的差異

SelectedItem、SelectedValue和SelectedValuePath的差異

肥皂起泡泡 2019-06-19 10:51:22
SelectedItem、SelectedValue和SelectedValuePath的差異以下幾點有什么區別?選擇Item選擇價值SelectedValuePath中定義了所有這些依賴項屬性。選擇器班級,等級。我經常混淆SelectedItem帶著SelectedValue,和SelectedValue帶著SelectedValuePath.我想知道它們之間的區別,以及我們什么時候使用它們,特別是SelectedValue和SelectedValuePath..請解釋一下使用有一些簡單的例子。
查看完整描述

3 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

它們的名字可能有點混亂:)。以下是一個總結:

  • 這個選擇Item屬性返回綁定到的整個對象。所以假設您已經將一個列表綁定到Category對象(每個類別對象都具有名稱和ID屬性)。例如。ObservableCollection<Category>..這個SelectedItem屬性將返回當前選定的Category對象。但是,為了綁定目的,這并不總是您想要的,因為這只使您能夠將整個分類對象綁定到列表綁定到的屬性,而不是綁定到該類別對象上的單個屬性值(例如它的ID財產)。

  • 因此我們有SelectedValuePath屬性和選擇價值屬性作為另一種綁定方式(您可以將它們與其他方法結合使用)。假設你有一個Product對象,該對象是您的視圖綁定到的對象(帶有產品名稱、權重等的屬性)。也可以說你有一個CategoryID屬性,您希望用戶能夠從類別列表中為產品選擇一個類別。您需要將類別對象的ID屬性分配給CategoryID屬性在ProductObject上。這是SelectedValuePathSelectedValue財產進來了。指定類別對象上的ID屬性應分配給列表綁定到的ProductObject上的屬性SelectedValuePath='ID',然后綁定SelectedValue屬性設置為DataContext上的屬性(即。產品)。

下面的示例說明了這一點。我們有一個ComboBox綁定到一個類別列表(通過ItemsSource)。我們將Products上的CatoryID屬性綁定為所選的值(使用SelectedValue屬性)。我們通過SelectedValuePath屬性將其與類別的ID屬性相關聯。我們說的是只在ComboBox中顯示Name屬性,并使用DisplayMemberPath屬性)。

<ComboBox ItemsSource="{Binding Categories}" 
          SelectedValue="{Binding CategoryID, Mode=TwoWay}" 
          SelectedValuePath="ID" 
          DisplayMemberPath="Name" />

一開始有點讓人困惑,但希望這能讓事情變得更清楚.*)

克里斯


查看完整回答
反對 回復 2019-06-19
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

為了更好地回答這個問題:

SelectedValuePath定義綁定到ListBox的對象的哪個屬性(按其名稱)ItemsSource將用作該項目的SelectedValue.

例如,如果ListBox綁定到Person對象,每個對象都有NameAge,和Gender財產,SelectedValuePath=Name將導致選定的值。PersonName中返回的財產SelectedValue.

注意,如果您重寫ListBox的ControlTemplate(或應用樣式)指定應該顯示什么屬性,SelectedValuePath不能使用。

SelectedItem,同時,返回整個Person當前選定的對象。

(這里MSDN的另一個示例,使用TreeView)

最新情況:正如@Joe所指出的,DisplayMemberPath屬性與選定的*屬性無關。其適當的描述如下:

請注意,這些值與DisplayMemberPath(它是在ItemsControl上定義的,而不是Selector),但該屬性的行為與SelectedValuePath在沒有樣式/模板的情況下,它標識綁定到項的對象的哪個屬性應用作其字符串表示形式。


查看完整回答
反對 回復 2019-06-19
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

SelectedItemobjectSelectedValueSelectedValuePathstringS.

例如,使用ListBox:

如果你說給我listbox1.SelectedValue它將返回當前選定項目的文本。

string value = listbox1.SelectedValue;

如果你說給我listbox1.SelectedItem它會給你整個物體。

ListItem item = listbox1.SelectedItem;
string value = item.value;


查看完整回答
反對 回復 2019-06-19
  • 3 回答
  • 0 關注
  • 1212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號