[英]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.