2013-06-28 30 views
0

我有兩個ComboBox控制在我DataGrid裏面,我想設置Enable狀態的一個ComboBox取決於在另一個項目的選擇。Combobox Enablity

例子:

我有一個ComboBox命名爲 「項目」,另一個名爲 「的SerialNumber」。當我從相應的下拉菜單中選擇任何項目時,它會相應地更改SerialNumber組合框集合。

我想要的是當我選擇一個項目,並且如果根據選定的項目沒有Seri​​alNumber,我想禁用「SerialNumber」ComboBox

我該怎麼做?

+2

請閱讀[常見問題](http://stackoverflow.com/help/how-to-ask)如何寫od問題並向我們提供一些代碼,以便我們可以看到如何將數據加載到ComboBoxes中。 – wonko79

回答

0

要禁用組合框,如果它是空的。我對嗎? 這樣做,你可以創建一個轉換器

這是您的組合框

<ComboBox [...] 
    Visibility="{Binding RelativeSource={RelativeSource Self}, Path=ItemsSource, Converter={StaticResource HiddenWithNoElementConverter}}" /> 

這是你的資源,以便能夠使用資源

<UserControl.Resources> 
    <local:HiddenWithNoElementConverter x:Key="HiddenWithNoElementConverter"/> 
</UserControl.Resources> 

這是你的轉換器類

class HiddenWithNoElementConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     if (value == null) 
      return Visibility.Collapsed; 
     if((value as IEnumerable<string>).Count() == 0) 
     { 
      return Visibility.Collapsed; 
     } 
     return Visibility.Visible; 
    }...