我尝试将ObservableCollection
变量绑定到XAML中的ComboBox
。数据没有约束力。
XAML文件
<ComboBox x:Name="cmbCity" Height="44" Width="150" Grid.Row="4"
ItemsSource="{Binding}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Margin="5" Text="{Binding lstCity}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
代码落后(导航到其他页面后)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
UserInfo userInfo = new UserInfo();
userInfo.UserName = "Gayathri";
userInfo.Country = "India";
userInfo.State = "TN";
ObservableCollection<string> cityInfo = new ObservableCollection<string>();
cityInfo.Add("Chennai");
cityInfo.Add("Cuddalore");
cityInfo.Add("Pondicherry");
cityInfo.Add("Villupuram");
userInfo.lstCity = cityInfo;
this.DataContext = userInfo;
}
我在DataContext
传递值。数据已绑定到textbox
,但未绑定到Combobox
。
输出:
答案 0 :(得分:2)
你的绑定有点不对 它们应该是这样的:
<ComboBox x:Name="cmbCity" Height="44" Width="150" Grid.Row="4"
ItemsSource="{Binding lstCity}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Margin="5" Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
(我已将引用移至lstCity
)
以前,您将整个DataContext绑定到ComboBox,然后将每个TextBlock绑定到字符串集合。
您需要将ComboBox的ItemsSource绑定到集合,然后每个TextBlock应包含其中一个字符串。