当选择listview项目时填充文本框。

16 浏览
0 Comments

当选择listview项目时填充文本框。

我有一个场景。在我的视图中,我有两个文本框,分别绑定到视图模型的属性Name和Address。还有一个按钮,将文本框的值添加到一个列表视图中。

我的问题是,当选择列表视图中的项目时,我想要填充文本框,该如何做到(在普通的WPF应用程序中,我在selection_changed事件中完成了这个操作,但在这里我使用的是MVVM模式,这对我来说是新的)。

编辑

我的视图:

我有一个场景。在我的视图中,我有两个文本框,分别绑定到视图模型的属性Name和Address。还有一个按钮,将文本框的值添加到一个列表视图中。

我的问题是,当选择列表视图中的项目时,我想要填充文本框,该如何做到(在普通的WPF应用程序中,我在selection_changed事件中完成了这个操作,但在这里我使用的是MVVM模式,这对我来说是新的)。

编辑

我的视图:

HorizontalAlignment="Stretch"

Margin="0,6,0,0"

Name="txtbxAddress"

Text="{Binding Path=Name}"

VerticalAlignment="Top"

Grid.Column="1"

Grid.Row="1" />

HorizontalAlignment="Stretch"

Margin="0,6,0,0"

Name="txtbxAddress"

Text="{Binding Path=Address}"

VerticalAlignment="Top"

Grid.Column="1"

Grid.Row="1" />

SelectedItem="{Binding Path=SelectedManufacture}"

Margin="7"

Name="lstvw_Manufature_Master">

Header="Manufacture Name"

Width="338" />

Header="Address"

Width="0" />

Header="Location"

Width="200" />

Header="Phone_No"

Width="120" />

Header="Is_Active"

Width="0" />

这是我的视图模型:

private string _name;

public string Name

{

get { return _name; }

set

{

_name = value;

RaisePropertyChanged("Name");

}

}

private string _address;

public string Address

{

get { return _address; }

set

{

_address = value;

RaisePropertyChanged("Address");

}

}

private ObservableCollection _manufactureRecords;

public ObservableCollection ManufactureRecords

{

get { return _manufactureRecords; }

set

{

_manufactureRecords = value;

RaisePropertyChanged("ManufactureRecords");

}

}

private Tbl_Manufacture_Master _selectedManufacture;

public Tbl_Manufacture_Master SelectedManufacture

{

get { return _selectedManufacture; }

set

{

_selectedManufacture = value;

RaisePropertyChanged("SelectedManufacture");

}

}

0
0 Comments

问题的出现的原因:在ViewModel中,无法获取到TextBox的值,因为没有将TextBox的值绑定到ViewModel的属性上。

解决方法:将TextBox的值绑定到ViewModel的属性上,可以使用ElementName绑定方式,也可以使用ViewModel的属性绑定方式。

0