Wpf Q:从listview绑定的文本框更新viewmodel属性

Wpf Q:从listview绑定的文本框更新viewmodel属性,wpf,mvvm,properties,binding,Wpf,Mvvm,Properties,Binding,我有一个文本框,文本绑定到listview selecteditem,如下所示: <TextBox x:Name="txtAdditional" Width="300" Text="{Binding ElementName=lstPersons, Path=SelectedItem.Additional, Mode=OneWay}" /> 现在,我想实现一种机制,使用此文本框向listview添加新项以获取实际数据。因

我有一个文本框,文本绑定到listview selecteditem,如下所示:

<TextBox x:Name="txtAdditional" Width="300" Text="{Binding ElementName=lstPersons, Path=SelectedItem.Additional, Mode=OneWay}" />

现在,我想实现一种机制,使用此文本框向listview添加新项以获取实际数据。因此,我想将textbox的文本绑定到viewmodel的属性,以便可以通过命令对其进行处理

因此,必须将文本框文本绑定到listviews selecteditem以及我的viewmodel的属性

我已经四处搜索并找到了一些方法,但我忍不住认为应该有一些更简单的机制来归档这个目标

我现在发现:

  • 将MultiBindung与某种值转换器一起使用?因此,在我看来,这是显示而不是更新viewmodels属性的主要方法
  • 使用一些自定义控件
  • 使用具有in和out dependencyproperties(如in)的BindingProxy
  • 是否有其他更简单的解决方案,或者我必须使用上面的解决方案之一? 如果你应该使用其中一种方法,你会选择哪一种


    我忍不住想,这个问题还没有得到考虑,使用mvvm模式?!;-)

    是的,多亏了BionicCode的提示

    我们,或者更好,我应该考虑一下MVVM的概念。当然没有——或者至少尽可能少的代码隐藏

    我将属性“selectedPerson”添加到我的viewmodel中,并将listview的SelectedItem绑定到此属性。因此,与对象相关的属性可以直接通过我的viewmodel中的“selected”对象获得,而不再需要访问文本框内容


    感谢BionicCode的提示

    您应该在视图模型中添加属性,例如,
    SelectedPerson
    。在需要时,将此属性用作每个控件的绑定源。例如,将其绑定到
    列表视图。选择editem
    TextBox.Text
    。您应该始终将视图模型视为唯一的数据源,而不是其他控件。数据始终在控件视图模型之间流动,但“从不”控件。先这样想会让事情变得更容易。