簡體   English   中英

獲取綁定列表框中所選項目的值

[英]Get value of selected item in binded listbox

我想在listbox顯示的所選項目的doubleclick事件上獲取一個string值。 我正在使用mvvm體系結構。 下面是代碼:

<ListBox ItemsSource="{Binding RecentProjects}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock>
                         <Run Text="{Binding FileName}"/>
                         <Run Text="{Binding CreationTime}"/>
                    </TextBlock>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
                <i:InvokeCommandAction Command="{Binding SelectedCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </ListBox>

我的ViewModel中的代碼如下所示:

private ObservableCollection<FileItem> _recentProjects = new ObservableCollection<FileItem>();
public ObservableCollection<FileItem> RecentProjects
    {
        get { return _recentProjects; }
        set { _recentProjects = value; }
    }

public RelayCommand SelectedCommand { get; private set; }
private void Selected()
    {
        //string fileName = RecentProjects.SelectedItem ===> Need stringvalue of filename
    }

並且,在FileItem模型中,我具有FileName和CreationTime屬性。 我想在最近的項目Observablecollection中獲取selecteditem的FileName的字符串值。 我怎樣才能做到這一點?

您應該將Property定義為ListBox.SelectedItem

您的視圖模型:

    FileItem _myItem;
    public FileItem MyItem
    {
        get
        {
            return _myItem;
        }
        set
        {
            _myItem = value;
            OnPropertyChanged("MyItem");
        }
    }

    private void Selected()
    {
        string fileName = MyItem.FileName;
    }

您的Xaml:

<ListBox ItemsSource="{Binding RecentProjects}" SelectedItem="{Binding MyItem}">
        <ListBox.ItemTemplate> ...

暫無
暫無

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

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