你需要指定第二結合ElementName
:
<combobox x:Name="cboCustomers" ItemsSource="{Binding Data.Customers}"/>
<combobox x:Name="cboInvoices"ItemsSource="{Binding SelectedItem.Invoices, ElementName=cboCustomers}"/>
如果你也想被禁用第二組合框,直到在第一個組合框中選擇了某些東西,您可以通過轉換器將第二個組合框的IsEnabled
屬性綁定到第一個組合框的SelectedItem
屬性。
這個類添加到您的項目:
public class NullToBooleanConverter : IValueConverter {
public Object Convert(Object value, Type targetType, Object parameter, CultureInfo culture) {
if (targetType == typeof(Boolean))
return value != null;
throw new NotSupportedException("Value converter can only convert to Boolean type.");
}
public Object ConvertBack(Object value, Type targetType, Object parameter, CultureInfo culture) {
throw new NotSupportedException("Value converter cannot convert back.");
}
}
添加這個類的一個實例,您的用戶控制的資源字典(local
是轉換器的命名空間的命名標籤):
<UserControl.Resources>
<local:NullToBooleanConverter x:Key="NullToBooleanConverter"/>
</UserControl.Resources>
那麼你可以添加這第二個組合框:
IsEnabled="{Binding SelectedItem, ElementName=cboCustomers, Converter={StaticResource NullToBooleanConverter}}"
這是一個很好的鏈接,謝謝! – JasonRShaver 2009-10-02 15:49:17