[英]How to get specific item listbox C# MVVM WPF
嗨,我嘗試從列表框中獲取特定項目。 我嘗試綁定但我崩潰了。 使用 Prism 框架我如何綁定以從列表框中獲取特定項目,我需要制作什么模板。 這是測試代碼:
<ListBox SelectedItem="{Binding SelectIndex}" HorizontalAlignment="Left" Height="297" Margin="57,41,0,0" VerticalAlignment="Top" Width="681">
<ListBoxItem>
<TextBlock Text="Test123"/>
</ListBoxItem>
<ListBoxItem>
<TextBlock Text="Test123"/>
</ListBoxItem>
</ListBox>
C# 代碼:
public int SelectIndex
{
get
{
return 1;
}
}
如果我想要此列表中的特定項目,我該如何獲取? 將列表框綁定到 select 項目需要什么變量類型?
它崩潰了,因為您將SelectedItem
(類型為object
)綁定到您的視圖 model (VM)中的SelectIndex
屬性( int
屬性)。 像許多 WPF 控件一樣, ListBox
具有用於綁定的不同SelectedIndex
和SelectedItem
屬性。
如果要綁定到int
屬性以獲取索引,則應改為綁定ListBox
的SelectedIndex
屬性。
改變:
<ListBox SelectedItem="{Binding SelectIndex}" ...
...至:
<ListBox SelectedIndex="{Binding SelectIndex}" ...
您的虛擬機保持為:
public int SelectIndex { get { return 1; } }
雖然更有用並允許用戶選擇不同的項目,但它應該是:
public int SelectIndex { get; set; } // TODO: add support for INotifyPropertyChanged
您可以選擇添加:
<ListBox SelectedIndex="{Binding SelectIndex}"
SelectedItem="{Binding SelectedItem}" ...
視圖模型:
public int SelectIndex { get; set; } // TODO: add support for INotifyPropertyChanged
// replace object with your type
public object SelectedItem { get; set; } // TODO: add support for INotifyPropertyChanged
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.