Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何循环WPF中的多列列表框?_C#_Wpf_Vb.net_Visual Studio 2010_Listbox - Fatal编程技术网

C# 如何循环WPF中的多列列表框?

C# 如何循环WPF中的多列列表框?,c#,wpf,vb.net,visual-studio-2010,listbox,C#,Wpf,Vb.net,Visual Studio 2010,Listbox,我是WPF的初学者。我担心这听起来像个愚蠢的问题 我有一个有两列的列表框。每个列表框项都包含一个水平堆叠面板,该面板依次包含文本块 listbox是空的,每个listbox项都是由最终用户通过放置在别处的两个文本框添加的。第一列接受字符串,第二列只接受百分比 (我已经附加了event sub的相关部分,其中用户正在添加新行。) 我希望能够在每次触发上述事件时检查百分比列是否不超过100%。我在列表框下面有几个标签,我想在这里显示运行总数和剩余部分 我的问题是: 1) 如何循环第二列百分比以显示运

我是WPF的初学者。我担心这听起来像个愚蠢的问题

我有一个有两列的列表框。每个列表框项都包含一个水平堆叠面板,该面板依次包含文本块

listbox是空的,每个listbox项都是由最终用户通过放置在别处的两个文本框添加的。第一列接受字符串,第二列只接受百分比

(我已经附加了event sub的相关部分,其中用户正在添加新行。)

我希望能够在每次触发上述事件时检查百分比列是否不超过100%。我在列表框下面有几个标签,我想在这里显示运行总数和剩余部分

我的问题是:

1) 如何循环第二列百分比以显示运行的总数和剩余数

2) 有什么比列表框更合适的方法可以让这更简单吗


我将非常感谢任何关于这个问题的解决方案的指导,不管它是用VB还是C#。多谢各位

如果可能的话,我会在另一个领域跟踪百分比。这将使您的实现与您的用户界面分离,这通常是一个好主意。

根据您的代码示例,您似乎遇到了我第一次使用WPF时遇到的相同问题。很难摆脱代码隐藏的心态,接受数据绑定,但我认为你应该尝试一下。你可能会发现这是值得的

最后,我认为最好的选择是将一些对象集合绑定到listbox,然后遍历该集合,如

并将列、文本块或任何布局绑定到“YourStringPercentageObject”的公共属性


然后,“StringPercentageCollection”可能是数据上下文中
YourStringPercentageObject
的可观察集合(或其他集合)。然后,您就可以正常地遍历可观察集合。

感谢您提供的提示,我将研究这种方法。数据绑定,我来了!
Private Sub btnAddItem_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btnAddSplit.Click

'...

Dim ListBoxItemName As New TextBlock
ListBoxItemName.Text = Name.Text
ListBoxItemName.Width = 170

Dim ListBoxItemValue As New TextBlock
ListBoxItemValue.Text = SplitValue.Text
ListBoxItemValue.Width = 70

Dim ListBoxStackPanel As New StackPanel
ListBoxStackPanel.Orientation = Orientation.Horizontal
ListBoxStackPanel.Children.Add(ListBoxItemName)
ListBoxStackPanel.Children.Add(ListBoxItemValue)

Dim NewEntry As New ListBoxItem
NewEntry.Content = ListBoxStackPanel

MyListBox.Items.Add(NewEntry)

'...

End Sub