我有一个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
答案 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