簡體   English   中英

如何獲取特定項目列表框 C# MVVM WPF

[英]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具有用於綁定的不同SelectedIndexSelectedItem屬性。

如果要綁定到int屬性以獲取索引,則應改為綁定ListBoxSelectedIndex屬性。

改變:

<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.

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