如何将文本框值绑定到ListBox中的Selected Item的属性

时间:2014-05-09 23:35:58

标签: wpf xaml binding textbox listbox

对不起,XAML对我来说很新,所以如果我听起来像菜鸟,我会提前道歉。

我在ListBox中有动态添加/删除/等项目,它的绑定方式如下:

<ListBox Name="missionList" ItemsSource="{Binding Mode=OneWay}" ItemTemplate="{DynamicResource missionLegTemplate}" SelectionChanged="missionList_SelectionChanged"/>

它绑定的项目包含在继承自ObservableList的列表中。这个列表是我的DataContext,它在程序的开头设置:

    public MainWindow()
    {
        InitializeComponent();

        DataContext = new MissionList();
    }

我有一系列文本框,用于显示对象属性的当前值,并在编辑时保存它们。

阅读后,我得到的印象是我需要将文本框范围内的DataContext设置为ListBox中当前选定的对象,但我不确定如何使用XAML访问该对象。 / p>

这有意义吗?在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我可能会将您的MissionList移动​​到ViewModel类中,以及可以绑定到ListBox的SelectedItem的SelectedMission的新属性。

作为一个例子(不一定是工作代码):

public MainWindow()
{
    InitializeComponent();

    DataContext = new MainWindowViewModel();
}

public class MainWindowViewModel
{
    public ObservableCollection<Mission> MissionList { ... }
    public Mission SelectedMission { ... }
    .
    .
    .
}

<ListBox ItemsSource="{Binding MissionList}" SelectedItem="{Binding SelectedMission}" />
<TextBox Text="{Binding Path=SelectedMission.SomeTextField, Mode=OneWay}" />