2011-06-22 73 views
0

,我有5个编号1 - 5,的SelectedItem在双向模式为SelectedAmount,其中具有1的默认值的int属性,则数据绑定每当我运行应用程序我有1个作为值在我的列表框中选中并突出显示,这非常好,但是现在无论何时将值更改为2或任何其他值,ListBox都会显示新值,但未突出显示,并且SelectedAmount仍旧保留旧值,这很明显不好,我希望每当用户更改选定的值时,SelectedAmount就会直接获取新值,用户现在在做出选择后,必须再次单击以突出显示它。有任何想法吗 ?列表框项高亮显示或在我的列表框选择的混乱

<ListBox ItemsSource="{Binding SiliconAmounts}" SelectedItem="{Binding SiliconAmount,Mode=TwoWay}" Height="31" HorizontalAlignment="Left" Margin="83,148,0,0" VerticalAlignment="Top" Width="149" IsTabStop="True" TabIndex="4" /> 

我的财产数据绑定到selectedItem属性看起来像

public int SiliconAmount 
    { 
     get 
     { 
      return _SiliconAmount; 
     } 
     set 
     { 
      if (_SiliconAmount != value) 
      { 
       _SiliconAmount =value; 
       OnPropertyChanged("SiliconAmount"); 
      } 
     } 
    } 

我的项目属性看起来像

public ObservableCollection<int> SiliconAmounts 
    { 
     get { return _SiliconAmounts; } 
     set 
     { 
      if (_SiliconAmounts != value) 
      { 
       _SiliconAmounts = value; 
       OnPropertyChanged("SiliconAmounts"); 
      } 
     } 
    } 

在我的视图模型构造

SiliconAmounts = new ObservableCollection<int>(); 
     SiliconAmounts.Add(1); 
     SiliconAmounts.Add(2); 
     SiliconAmounts.Add(3); 
     SiliconAmounts.Add(4); 
     SiliconAmounts.Add(5); 

在此先感谢

+0

可以显示代码重现呢? – stijn

+0

肯定的是,我将编辑的帖子,包括代码 – Musaab

+0

我不知道这是否正常工作,但尝试的SelectedValue代替的SelectedItem。 –

回答

0

发布和阅读的意见后,这听起来像问题是UI风格。我发现Expression Blend是用于在控件上编写样式和模板的有用工具。我倾向于直接编写XAML代码,但Expression为此提供了一个编辑器,以及一些用于设置视觉状态,视觉触发器,选择颜色等的好工具。 You can get a trial of Blend here。很多WPF开发人员使用的另一个工具是Kaxaml

+0

这个答案是什么意思?你是如何解决这个问题的? – Jose

+0

阅读OP上的意见。在发现问题和答案后,他发现(正如我们所怀疑的)他的代码没有任何问题,问题在于ListBox和其他控件的样式。所以我给了他一些建立风格的建议。 –