当内容在模板中绑定时,WPF组合框获取文本

时间:2017-02-21 23:04:19

标签: wpf vb.net xaml combobox

标题说了很多,但这就是我的所作所为:

  1. 使用自定义列表(对象)
  2. 填充组合框
  3. 通过同一对象中的“类别”属性对它们进行分组
  4. 组合框填充确定,该组正在100%工作。但是,我想获得当前选择的值。当没有绑定组合框时,我可以很容易地去combobox.Text,但它返回“ApplicationName.Object”而不是实际值。

    我认为这是由于绑定和属性在某些时候没有被检测为字符串。只是不知道在哪里和如何。我很欣赏代码,但也感谢它的行为。当谈到WPF时,我不是专家,对我来说绑定对我来说仍然是个新事物。 (现在几个月)

    代码:

    XAML:

    <ComboBox x:Name="SummTool_CompanyDD" LostFocus="UpdateFinalSummary" Height="20" Width="180">
        <ComboBox.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock FontWeight="Bold" Text="{Binding Name}"/>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ComboBox.GroupStyle>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Margin="5,0" Text="{Binding Name}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
    

    vb.net:

        Dim itemsCompany As List(Of ItemCB) = New List(Of ItemCB)
        Dim category As String = ""
        For Each company In CompanyList
            If company.StartsWith("**") Then
                category = company.Substring(2)
            Else
                Dim newItem As ItemCB = New ItemCB()
                newItem.Name = company
                newItem.Category = category
                itemsCompany.Add(newItem)
            End If
        Next
    
        Dim lcv As ListCollectionView = New ListCollectionView(itemsCompany)
        lcv.GroupDescriptions.Add(New PropertyGroupDescription("Category"))
    
        SummTool_CompanyDD.ItemsSource = lcv
    

    以上是组合框的初始化。 CompanyList是一个简单的字符串数组。然后当我SummTool_CompanyDD.Text时,我得到ApplicationName.ItemCB

    谢谢和问候,

0 个答案:

没有答案