Как получить базовое связывание для работы между ComboBox
и ObservableCollection
? Я не могу получить ничего, кроме сообщений об ошибках.Как связать ObservableCollection с ComboBox?
VB:
Class MainWindow
Dim Units As New ObservableCollection(Of String)
Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Units.Clear()
Units.Add("in")
Units.Add("mm")
Units.Add("cm")
End Sub
End Class
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">
<Grid>
<ComboBox Height="59" HorizontalAlignment="Left" Margin="136,96,0,0" Name="ComboBox1" VerticalAlignment="Top" Width="319"
ItemsSource="{Binding Units}"/>
</Grid>
Независимо от того, что я делаю, то ComboBox
всегда кажется пустым и есть сообщение об ошибке в консоли:
System.Windows.Data Error: 40 : BindingExpression path error: 'Units' property not found on 'object' ''MainWindow' (Name='')'. BindingExpression:Path=Units; DataItem='MainWindow' (Name=''); target element is 'ComboBox' (Name='ComboBox1'); target property is 'ItemsSource' (type 'IEnumerable')
Я сделал именно то, что вы предложили, и я все еще получаю то же сообщение об ошибке, и ComboBox по-прежнему пуст. Argh. – evilspoons
@evilspoons Моя ошибка. См. Обновление. – McGarnagle
Ура, это работает! Спасибо! ... теперь, если только я понял разницу между этим и десятками вариаций, которые я пробовал, хе-хе. – evilspoons