Как я могу получить этот ComboBox, размещенный в ListView, чтобы обновить мою коллекцию? - PullRequest
0 голосов
/ 24 декабря 2008

У меня есть ComboBox, размещенный в ListView, и мне нужно внести изменения в CombBox, чтобы обновить поддерживающий класс, с которым связан ListView.

Вот мой DataTemplate

<DataTemplate x:Key="Category">
    <ComboBox IsSynchronizedWithCurrentItem="False" 
              Style="{StaticResource DropDown}" 
              ItemsSource="{Binding Source={StaticResource Categories}}"
              SelectedValuePath="Airport"
              SelectedValue="{Binding Path=Category}"
              />
    </DataTemplate>

Это список. ItemSource для ListView представляет собой набор аэропортов, он задан в коде и имеет свойство Category, для обновления которого мне необходим комбинированный список.

<ListView.View>
            <GridView>
                <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="Airport" Width="100" />
                <GridViewColumn Header="Category" Width="100"  CellTemplate="{StaticResource Category}" />
            </GridView>
        </ListView.View>

Ответы [ 2 ]

1 голос
/ 24 декабря 2008

Почему вы установили SelectedValuePath в ComboBox? Трудно сказать, не видя ваших структур данных, но мне это не кажется правильным.

0 голосов
/ 24 декабря 2008

Вот данные, которые поддерживают ComboBox и ListView.

Imports System.Collections.ObjectModel

Класс Window1

Public Airports As New ObservableCollection(Of Airport)
Public Sub New()
    ' This call is required by the Windows Form Designer.
    InitializeComponent()

    '*************************
    'Dummy data for testing


    Dim anAirports As New Airport
    anAirports.Name = "ABC"
    anAirports.Category = "AA"

    Airports.Add(anAirports)

    anAirports = New Airport
    anAirports.Name = "DEF"
    anAirports.Category = "BB"

    Airports.Add(anAirports)
    '*************************
    'Bind the airports to the list for display
    lstCategories.ItemsSource = Airports

End Sub

Конечный класс

Аэропорт Публичного Класса

''' <summary>
''' Name of the Airport
''' </summary>
''' <remarks></remarks>
Private mName As String
Public Property Name() As String
    Get
        Return mName
    End Get
    Set(ByVal value As String)
        mName = value
    End Set
End Property

''' <summary>
''' Describes the type airport and is selected from a combobox
''' </summary>
''' <remarks></remarks>
Private mCategory As String
Public Property Category() As String
    Get
        Return mCategory
    End Get
    Set(ByVal value As String)
        mCategory = value
    End Set
End Property

Конечный класс

''» '' 'Элементы, которые должны отображаться в ComboBox «»» «»» Категории публичного класса

Inherits ObservableCollection(Of String)

Public Sub New()
    Me.Add("AA")
    Me.Add("BB")

End Sub

Конечный класс

...