如何获取特定项列表框 C# MVVM WPF



嗨,我尝试从列表框中获取特定项目。我试图绑定,但我崩溃了。使用棱镜框架如何绑定以从列表框中获取特定项目,我需要制作什么模板。这是测试代码:

<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;
}
}

如果我想要此列表中的特定项目,如何获取?绑定列表框以选择项目需要什么变量类型?

它崩溃了,因为您将SelectedItem(类型object(绑定到视图模型 (VM( 中的SelectIndex属性(int属性(。ListBox与许多 WPF 控件一样,具有用于绑定的不同SelectedIndexSelectedItem属性。

如果要绑定到int属性以获取索引,则应绑定ListBoxSelectedIndex属性。

改变:

<ListBox SelectedItem="{Binding SelectIndex}" ...

。自:

<ListBox SelectedIndex="{Binding SelectIndex}" ...

您的 VM 仍为:

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

相关内容

  • 没有找到相关文章

最新更新