gpt4 book ai didi

c# - 选择 ListView 项时填充文本框

转载 作者:行者123 更新时间:2023-12-03 10:17:40 25 4
gpt4 key购买 nike

我有场景。在我看来,我有 2 个文本框说名称,地址,分别绑定(bind) viewModels 属性名称,地址。还有一个按钮,将文本框值添加到 ListView 。
我的问题是我想在选择 ListView 中的项目时填充文本框如何执行此操作(我在普通 wpf 应用程序的 selection_changed 事件中执行此操作,但这里我使用的是 MVVM 模式,它对我来说是新的)

编辑

我的观点 :

<TextBox Height="23"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="txtbxAddress"
Text="{Binding Path=Name}"
VerticalAlignment="Top"
Grid.Column="1"
Grid.Row="1" />
<TextBox Height="23"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="txtbxAddress"
Text="{Binding Path=Address}"
VerticalAlignment="Top"
Grid.Column="1"
Grid.Row="1" />

<ListView ItemsSource="{Binding Path=ManufactureRecords}"
SelectedItem="{Binding Path=SelectedManufacture}"
Margin="7"
Name="lstvw_Manufature_Master"
>
<ListView.View>
<GridView>

<GridViewColumn DisplayMemberBinding="{Binding Path=Manufacture_Name}"
Header="Manufacture Name"
Width="338" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Address}"
Header="Address"
Width="0" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Location}"
Header="Location"
Width="200" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Phone_No}"
Header="Phone_No"
Width="120" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Is_Active}"
Header="Is_Active"
Width="0" />
</GridView>
</ListView.View>
</ListView>

这是我的 View 模型
 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<Tbl_Manufacture_Master> _manufactureRecords;
public ObservableCollection<Tbl_Manufacture_Master> 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");
}
}

最佳答案

从评论中链接的示例开始,您需要命名您的 ListView(即 x:Name="listView" )并在绑定(bind)中指定该名称以及 SelectedItem属性(property):

<TextBox Height="23"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="txtbxAddress"
Text="{Binding Path=SelectedItem.Name, ElementName=listView}"
VerticalAlignment="Top"
Grid.Column="1"
Grid.Row="1" />
<TextBox Height="23"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="txtbxAddress"
Text="{Binding Path=SelectedItem.Address, ElementName=listView}"
VerticalAlignment="Top"
Grid.Column="1"
Grid.Row="1" />

<ListView ItemsSource="{Binding Path=ManufactureRecords}"
SelectedItem="{Binding Path=SelectedManufacture}"
Margin="7"
x:Name="listView"
Name="lstvw_Manufature_Master">
...
</ListView>

关于c# - 选择 ListView 项时填充文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com