2011-06-22 75 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和其他控件的樣式。所以我給了他一些建立風格的建議。 –