使用caliburn micro将所选项目绑定到comboBox

时间:2018-07-24 12:15:08

标签: wpf data-binding caliburn.micro

我已经看到并测试了很多有关此的材料,但我又遇到了问题。我有一个绑定到组合框的城市集合,我想在单击按钮时设置所选项目(所选城市)(为简单起见)

这是我在xaml中的组合框:

<ComboBox Grid.Column="1" 
                              HorizontalAlignment="Left" 
                              Margin="65,10,0,0"
                              Height="25"
                              Name="Cities"
                              DisplayMemberPath="Name"
                              IsSynchronizedWithCurrentItem="True"
                              VerticalAlignment="Top"
                              Width="71">

                    </ComboBox>

这是相应ViewModel中的代码:

private City _selectedCity;
public City SelectedCity
{
    get { return _selectedCity; }
    set
      {
         _selectedCity = value;
         NotifyOfPropertyChange(() => SelectedCity);
         MessageBox.Show(SelectedCity.Name);
      }
}

当我单击按钮时,将执行以下代码行:

SelectedCity = CitySecond;

其中,CitySecond是Cities Collection中的一个随机项目。

当我单击此按钮时,所需的城市名称将显示在MessageBox中,但组合框中没有任何变化。我在Debug模式下对其进行了测试,一切看起来都很好,但是看起来comboBox感觉没有什么变化。

我还在组合框xaml定义中添加了以下代码,但未更改:

SelectedItem="{Binding SelectedCity}"

我该怎么办?

编辑:

我创建了另一个项目,一切正常,但这是个谜。其他是否会影响组合框正常工作?

0 个答案:

没有答案