简体   繁体   English

WPF 绑定列表框 选定项到文本框中

[英]WPF bind list box Selected item into textbox

I'm trying to put any selected item's name in my list box in the textbox next to it.我正在尝试将任何选定项目的名称放在它旁边的文本框中的列表框中。 But I've got trouble doing so.但我这样做有困难。

列表框图像

Here's a little bit of my code:这是我的一些代码:

    <DockPanel Margin="10">
        <StackPanel Margin="5" DockPanel.Dock="Left">
            <ListBox   Name="lbNames" DisplayMemberPath="Name" IsSynchronizedWithCurrentItem="True"/>
        </StackPanel>
        <StackPanel Margin="5" DockPanel.Dock="Right">
            <TextBox Name="txtName" Width="auto" Text="{Binding ElementName=lbNames,Path=SelectedItem}"/>
            <WrapPanel Margin="0,5" Orientation="Horizontal">
                <Button Margin="2,0" Name="btnAdd" Click="btnAdd_Click" Content="Add"/>
                <Button Margin="2,0"  Name="btnEdit" Click="btnChange_Click" Content="Edit"/>
                <Button Margin="2,0"  Name="btnDelete" Click="btnDelete_Click" Content="Delete"/>
            </WrapPanel>
        </StackPanel>
    </DockPanel>

Because you are showing Text="{Binding ElementName=lbNames,Path=SelectedItem}" and your selected item is an user object.因为您正在显示Text="{Binding ElementName=lbNames,Path=SelectedItem}"并且您选择的项目是一个用户对象。 Instead of this you can use something like that.取而代之的是,您可以使用类似的东西。 First add SelectedValuePath="Name" into your listbox.首先将SelectedValuePath="Name"添加到您的列表框中。 Then use Text="{Binding ElementName=lbNames,Path=SelectedValue}"然后使用Text="{Binding ElementName=lbNames,Path=SelectedValue}"

 <DockPanel Margin="10">
    <StackPanel Margin="5" DockPanel.Dock="Left">
        <ListBox   Name="lbNames" DisplayMemberPath="Name" SelectedValuePath="Name" IsSynchronizedWithCurrentItem="True"/>
    </StackPanel>
    <StackPanel Margin="5" DockPanel.Dock="Right">
        <TextBox Name="txtName" Width="auto" Text="{Binding ElementName=lbNames,Path=SelectedValue}"/>
        <WrapPanel Margin="0,5" Orientation="Horizontal">
            <Button Margin="2,0" Name="btnAdd" Click="btnAdd_Click" Content="Add"/>
            <Button Margin="2,0"  Name="btnEdit" Click="btnChange_Click" Content="Edit"/>
            <Button Margin="2,0"  Name="btnDelete" Click="btnDelete_Click" Content="Delete"/>
        </WrapPanel>
    </StackPanel>
</DockPanel>

Or simply you can use it too Text="{Binding ElementName=lbNames,Path=SelectedItem.Name}"或者你也可以使用它Text="{Binding ElementName=lbNames,Path=SelectedItem.Name}"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM