根据我上面的评论:
您可以将控件绑定到具有(至少)两个
财产。你设置了
DisplayMemberPath
以…的名义
要在控件和
SelectedValuePath
到要通过
SelectedValue
.
如果后一个属性包含宽度和高度组件,
您可以从
选定值
的
控件,获取宽度和高度组件并直接指定它们
不需要任何
If
属于
Select Case
是的。你可以用一个
System.Windows.Size
价值。
下面是一个简单的例子:
Class MainWindow
Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim items As New List(Of PaperSize) From {New PaperSize With {.Name = "A3", .Dimensions = New Size(297, 420)},
New PaperSize With {.Name = "F4", .Dimensions = New Size(215, 330)}}
With cmb_papersize
.SelectedValuePath = "Dimensions"
.ItemsSource = items
End With
End Sub
Private Sub Button1_Click(sender As Object, e As RoutedEventArgs)
Dim dimensions = DirectCast(cmb_papersize.SelectedValue, Size)
Dim pageWidth = dimensions.Width
Dim pageHeight = dimensions.Height
MessageBox.Show($"Page dimensions: {pageWidth} by {pageHeight}")
End Sub
End Class
Friend Class PaperSize
Public Property Name As String
Public Property Dimensions As Size
Public Overrides Function ToString() As String
Return $"{Name} - {Dimensions.Width}x{Dimensions.Height} mm"
End Function
End Class
注意,因为我没有设置
显示成员路径
,控件显示调用的结果
ToString
在每个项目上,这是重写的原因
弦线
在
PaperSize
上课。