【问题标题】:Binding ObservbleCollection to Combo box in XAML - Windows phone在 XAML 中将 ObservableCollection 绑定到 Combobox - Windows 手机
【发布时间】:2015-10-22 11:21:18
【问题描述】:

我尝试将 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

输出:

【问题讨论】:

    标签: xaml windows-phone-8.1


    【解决方案1】:

    你的绑定有点错误。
    它们应该是这样的:

    <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 应包含其中一个字符串。

    【讨论】:

    • @user2115618 如果这解决了问题,请将其标记为答案;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2021-01-24
    • 2014-05-25
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    相关资源
    最近更新 更多