簡體   English   中英

如何在WPF中遍歷多列列表框?

[英]How do I loop through a multi-column listbox in WPF?

我是WPF的初學者。 我擔心這聽起來像是一個愚蠢的問題。

我有兩列的列表框。 每個列表框項目都包含一個水平堆疊的面板,該面板又包含文本塊。

列表框為空,最終用戶通過放置在其他位置的幾個文本框添加了每個列表框項。 第一列接受字符串,第二列僅接受百分比。

(我在事件子句的相關部分附加了用戶要添加新行的內容。)

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 

我希望能夠在每次觸發以上事件時檢查百分比列不超過100%。 我在列表框下方有幾個標簽,我想在其中顯示運行總計和剩余數量。

我的問題是:

1)如何遍歷百分比的第二列以顯示運行總額和余數?

2)是否有比ListBox更合適的東西可以使此操作更容易?

無論是在VB還是C#中,我都希望能有任何有關解決方案的指導。 非常感謝你。

根據您的代碼示例,您似乎遇到了與剛開始使用WPF時遇到的相同問題。 很難擺脫這種代碼背后的思想並接受數據綁定,但是我認為您應該嘗試一下。 您可能會發現這是值得的。

最終,我認為您最好的選擇是將一些對象集合綁定到列表框,然后遍歷該集合,例如...

<ListBox ItemsSource="{Binding StringPercentageCollection}" ... />並將列,文本塊或任何布局綁定到“ YourStringPercentageObject”的公共屬性。

然后,“ StringPercentageCollection”可能是數據上下文中YourStringPercentageObject的ObservableCollection(或其他集合)。 這樣您就可以正常地遍歷可觀察的集合。

如果可能,我會在另一個字段中跟蹤百分比。 這會將您的實現與用戶界面區分開來,這通常是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM