【发布时间】:2021-06-15 11:31:17
【问题描述】:
WPF 和绑定相对较新。我有一个充满值的列表框。当用户选择某个值时,我想在多个标签和一个文本框上显示该值的详细信息。填充我的列表框列表的当前 LINQ 查询获取整个表,因此数据位于该列表中。如何在标签内传递所选值的详细信息?
我当前的列表框代码是:
<ListBox x:Name="LBController" Grid.Column="1" HorizontalAlignment="Left" Grid.RowSpan="6" Grid.Row="1"
ItemsSource ="{Binding AllControllers}" SelectedValue="{Binding SelectedControllerID}"
SelectedValuePath="Id" DisplayMemberPath="Name" >
</ListBox>
如果选择了列表框内的值,我希望它的名称显示在单独的标签上
<Label x:Name="lbl_controllername"
Content="Controller Naam" HorizontalAlignment="Left" VerticalAlignment="Top"
Grid.Row="1" Grid.Column="2" FontFamily="Corsiva" FontSize="11" Margin="40,0,0,0"/>
编辑:感谢大家的回答。但是,当使用具有其背后功能的控件执行相同操作时,这似乎确实很困难。
<TextBox x:Name="txt_CodeDetail"
TextWrapping="Wrap"
AcceptsReturn="True"
FontFamily="Corsiva"
FontSize="11"
Text="{Binding ControllerCode, Mode=TwoWay}"/>
例如,我有一个文本框,其中的文本被转换为应用程序执行功能的字符串。此字符串称为 ControllerCode。这是通过之前复制粘贴代码来完成的,但我希望文本框填充列表框中值中的选定属性。 我不能用
Text="{Binding SelectedItem.Property Elementname=LBController}"
因为那样会摆脱 Controllercode 并破坏功能。如何将文本框文本绑定到选定项以及维护由控制器代码形成的字符串?
【问题讨论】:
-
Content="{Binding SelectedItem.Name, ElementName=LBController}"应该可以工作。但是,您的视图模型中可能有一个“选定项”。
标签: c# wpf data-binding