2

我正在尝试将字典绑定到组合框,但在 UI 上没有显示项目,只有空白项目被绑定。请找到下面的代码,让我知道我做错了什么?

代码:

private Dictionary<string, string> _timeToExpirationValues = 
new Dictionary<string, string>     { "< 15 Days", "15" },
                                   { "< 30 Days", "30" },
                                   { "< 60 Days", "60" },
                                   { "< 90 Days", "90" },
                                   { "< 1 year", "365" }};


        /// <summary>
        /// Gets or sets the filter settings data.
        /// </summary>
        /// <value>
        /// The filter settings data.
        /// </value>
        public Dictionary<string, string> TimeToExpirationValues
        {
            get { return _timeToExpirationValues; }
            set { SetProperty(ref _timeToExpirationValues, value); }
        }

XAML 代码:

 <ComboBox Grid.Row="1" Grid.Column="1" 
                                  ItemsSource="{Binding TimeToExpirationValues}"
                                  DisplayMemberPath="Key"
                                  SelectedValuePath="Value" />

显示的内容如下:

在此处输入图像描述

4

4 回答 4

1

您是否将 DataContext 设置为窗口或 ComboBox?如果不是,您应该将这些行添加到您的窗口

<Window.DataContext>
        <local:YourClassName/>
    </Window.DataContext>
于 2013-05-02T08:56:18.180 回答
1

这似乎是已知的错误。这里有一些链接给你。我为 Windows Store App 尝试了这个 Silverlight 示例,我也得到了只有没有文本的白色项目。

将字典绑定到 WinRT 列表框

绑定中的 TargetException 错误 - MSDN 论坛

绑定到 Dictionary<string, object> 中的 TargetException 错误 - 已提交错误

于 2013-05-02T10:10:12.297 回答
0

试试这个(注意多余的词Path):

<ComboBox Grid.Row="1" Grid.Column="1" 
                              ItemsSource="{Binding Path=TimeToExpirationValues}"
                              DisplayMemberPath="Key"
                              SelectedValuePath="Value" />
于 2013-05-02T08:47:02.577 回答
0

我试过你的例子,它在这里工作。

所以我认为,组合框中的标签只有一个白色前景。(也许在 app.xaml 中声明为样式?)。

于 2013-05-02T09:40:45.773 回答