使用ListBox中的Items填充文本框

时间:2015-03-15 04:02:50

标签: wpf vb.net

我有一个ListBox1和一系列TextBox,从TextBox9开始。我可以使用Items(按顺序)填充ListBox1。我试图以相同的顺序将这些项目传输到TextBoxes(一个TextBox的一个项目)。 我试过这段代码:

      Dim x As Integer = ListBox1.SelectedIndex   




      For x =  0 To 50  




      For Each ListBoxItem In ListBox1.Items   




      ListBox1.SelectedItem = "TextBox" & (x+9) & ".Text"




      Next   




      Next x

代码编译但是当我点击按钮时没有任何反应。任何人都可以帮助我吗? 提前致谢 Venkatraman

1 个答案:

答案 0 :(得分:0)

其中一种方法可能是使用FrameworkElement.FindName()方法,另请参阅以下示例。

FWIW,在WPF中使用MVVM模式比初看起来更有意义,通常ViewModel会提供UI内容等等,而你通常不想做太多的事情。 View代码隐藏。

Sample.XAML:

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" SizeToContent="WidthAndHeight"
        Loaded="Window_Loaded">
    <StackPanel x:Name="stackPanel">
        <ListBox x:Name="l1"/>
        <TextBox x:Name="t1"/>
        <TextBox x:Name="t2"/>
        <TextBox x:Name="t3"/>
        <Button Content="Test" Height="25" Click="Button_Click"/>
    </StackPanel>
</Window>

Sample.VB:

Class MainWindow

    Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
        l1.Items.Add("Item1")
        l1.Items.Add("Item2")
        l1.Items.Add("Item3")
        l1.Items.Add("Item4")
    End Sub

    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
        Dim i As Integer
        Dim s As String
        For Each item As String In l1.Items
            i = i + 1
            s = String.Format("t{0}", i)
            Dim control = Me.FindName(s)
            If TypeOf control Is TextBox Then
                control.Text = item
            End If
        Next
    End Sub
End Class
相关问题