C# Silverlight组合框并选择EdItem

C# Silverlight组合框并选择EdItem,c#,silverlight-3.0,C#,Silverlight 3.0,我有以下情况: 1包含一年中月份的列表: public List<String> Months { get { return m_Months; } } m_Months = new List<String>(); for (int i = 1; i <= 12; i++) { DateTime date = new DateTime(1900, i, 1); m_Months.Add(date.ToSt

我有以下情况:

1包含一年中月份的列表:

public List<String> Months
{
    get
    {
        return m_Months;
    }
}


m_Months = new List<String>();

for (int i = 1; i <= 12; i++)
{
    DateTime date = new DateTime(1900, i, 1);
    m_Months.Add(date.ToString("MMM"));
}
公开列表月份
{
得到
{
返回m_月;
}
}
m_月=新列表();

对于(int i=1;i您如何设置
Month
属性?我不确定
组合框如何确定两个项目是否相同,但我可以看出,如果您输入的是“May”而不是
Months[4],它将无法正常工作
。作为测试,您可以尝试传入列表中的一个字符串,看看这是否解决了问题。

谢谢您的回复。已经尝试了您的建议,并获得了相同的结果。但是,我刚刚经历了荷马·辛普森时刻(Dôh!),发现我在组合框设置其项源之前设置了月份

奇怪的是,RadComboBox做的一切都是正确的。当ItemsSource更改时,它可能会再次检索SelectedItem

编辑:

好吧,我真的很惊讶地从椅子上摔了下来。很明显,SL3还有一些bug需要修复。请欣赏以下内容

这不起作用:

<ComboBox SelectedItem="{Binding Month, Mode=TwoWay}" ItemsSource="{Binding Months}" />

这就是:

<ComboBox ItemsSource="{Binding Months}" SelectedItem="{Binding Month, Mode=TwoWay}" />


看到细微的差别了吗?只要我在XAML中的SelectedItem之前设置ItemsSource,世界上一切都很好。哇,我从来都不知道XAML是线性解析的!

希望他们在Silverlight 4中修复了它,但感谢你发布了这个答案。哇,我们浪费了很多时间试图弄清楚这一点。感谢你发布了t他回答!@Kevin这在SL4中不是固定的。
<ComboBox ItemsSource="{Binding Months}" SelectedItem="{Binding Month, Mode=TwoWay}" />