获取绑定列表框中选定项的值
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
属性。
我想获取 RecentProjects Observable 集合中所选项目的 FileName 的字符串值。我该怎么做?
您应该将 属性 定义为您的 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> ...
我想在 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
属性。
我想获取 RecentProjects Observable 集合中所选项目的 FileName 的字符串值。我该怎么做?
您应该将 属性 定义为您的 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> ...