【问题标题】:Getting value of "System.Windows.Controls.TextBlock" when binding to Silverlight ComboBox绑定到 Silverlight ComboBox 时获取“System.Windows.Controls.TextBlock”的值
【发布时间】:2011-03-15 12:47:53
【问题描述】:

我正在尝试在一个非常简单的绑定场景中使用带有静态元素列表的 Silverlight ComboBox。问题是所选项目没有返回 ComboBox 中 TextBlock 的文本,而是返回“System.Windows.Controls.TextBlock”。

我的 XAML 是:

<ComboBox SelectedValue="{Binding Country, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}">
    <TextBlock FontSize="11" Text="Afghanistan" />
    <TextBlock FontSize="11" Text="Albania" />
    <TextBlock FontSize="11" Text="Algeria" /> 
</ComboBox>

在我的 C# 文件中,我使用以下方法绑定到 ComboBox:

Customer customer = new Customer() { Country = "Albania" };
DataContext = customer;

绑定不会将阿尔巴尼亚作为选定的国家/地区,更新 ComboBox 选项会导致将 Country 设置为“System.Windows.Controls.TextBlock”。我试过摆弄 DisplayMemberPath 和 SelectedValuePath 但没有找到答案。我怀疑我错过了一些非常简单的东西。

【问题讨论】:

    标签: data-binding silverlight-4.0


    【解决方案1】:

    将 ComboBox 项目更改为字符串有效。我不确定您将如何处理需要 TextBlocks 进行格式化的情况...

    <ComboBox SelectedValue="{Binding Country, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}">
        <System:String>Afghanistan</System:String>
        <System:String>Albania</System:String>
        <System:String>Algeria</System:String>
    </ComboBox>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 2012-03-10
      • 2011-10-05
      • 2014-06-13
      • 2011-09-06
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      相关资源
      最近更新 更多