簡體   English   中英

WPF ComboBox綁定選定值

[英]WPF ComboBox Binding Selected Value

我正在嘗試使用以下數據格式進行綁定:

Public Structure ItemBase
    Property ID As String
    Property Description As String
End Structure

Namespace Classes
    Public Class StockEntityClass
        Implements INotifyPropertyChanged  
#Region "Property Variables"
        Property ID As String
        Property Namee As String
        Property Units As String
        Property ContactID As String
        Property SetCount As Integer
        Property VatOnMargin As Boolean
        Property Vat As Double
        Property Code As String
        Property _ContactNamee As String
#End Region

        Public Sub New()
            _IDValue = Now.ToString
            _NameeValue = ""
            _UnitsValue = "Pcs"
            _ContactIDValue = ""
            _SetCountValue = 0
            _VatOnMarginValue = False
            _VatValue = 14.5
            _CodeValue = ""
            _ContactNamee = ""
        End Sub    
    End Class
End Namespace

在我的wpf xaml窗口中,這是DataContext到Stock Entity變量,我有一個綁定到BindingList(ItemBase)的組合框,用戶將選擇一個Item和該ItemID關聯到StockEntity.ContactID。

以下是xaml代碼:

<ComboBox Name="VendorsComboBox" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" DisplayMemberPath="Description" SelectedItem="{Binding Path=CustomerID}"/>

以下是綁定代碼:

Dim Stock As Classes.StockEntityClass
VendorsComboBox.ItemsSource = Contacts.DBAccessFunctions.Get_ContactsByType_BaseList(DataSource, "Vendor")
        StockEntityStack.DataContext = Stock

StockEntityStack包含UI部分,該部分是數據上下文綁定到stock變量的。 您能否告訴我如何將xaml數據綁定到其中。

嘗試這樣的事情:

MainWindow(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" Height="350" Width="525">
        <StackPanel>
            <ComboBox ItemsSource="{Binding MySource}" 
                      SelectedValue="{Binding ContactID}"
                      DisplayMemberPath="Description"
                      SelectedValuePath="ID"
                      Width="180" Height="25"
                      />

            <StackPanel Orientation="Horizontal" Margin="10" >
                <TextBlock Text="Selected ID:" />
                <TextBlock Text="{Binding ContactID}" />
            </StackPanel>
        </StackPanel>
    </Window>

MainWindow(代碼隱藏文件):

Class MainWindow 
    Public Sub New()
        InitializeComponent()
        Me.DataContext = New MainViewModel()
    End Sub
End Class

MainViewModel文件:

   Imports System.ComponentModel

Public Class MainViewModel
    Implements INotifyPropertyChanged

#Region "Fields"
    Private _selectedContactID As String = String.Empty
#End Region


#Region "Property Variables"
    Property MySource As List(Of ItemBase) = New List(Of ItemBase)
    Public Property ContactID As String
        Get
            Return _selectedContactID
        End Get
        Set(ByVal value As String)
            _selectedContactID = value
            OnPropertyChanged("ContactID")
        End Set
    End Property
#End Region

    Public Sub New()
        MySource.Add(New ItemBase(1, "test1"))
        MySource.Add(New ItemBase(2, "test2"))
        MySource.Add(New ItemBase(3, "test3"))
        MySource.Add(New ItemBase(4, "test4"))
        MySource.Add(New ItemBase(5, "test5"))
    End Sub

    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

    Protected Sub OnPropertyChanged(ByVal propertyName As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
    End Sub

End Class


Public Structure ItemBase
    Public Sub New( _
       ByVal _id As String,
       ByVal _description As String
       )
        ID = _id
        Description = _description
    End Sub
    Property ID As String
    Property Description As String
End Structure

暫無
暫無

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

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