繁体   English   中英

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

[英]WPF bind list box Selected item into textbox

我正在尝试将任何选定项目的名称放在它旁边的文本框中的列表框中。 但我这样做有困难。

列表框图像

这是我的一些代码:

    <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>

因为您正在显示Text="{Binding ElementName=lbNames,Path=SelectedItem}"并且您选择的项目是一个用户对象。 取而代之的是,您可以使用类似的东西。 首先将SelectedValuePath="Name"添加到您的列表框中。 然后使用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>

或者你也可以使用它Text="{Binding ElementName=lbNames,Path=SelectedItem.Name}"

暂无
暂无

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

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