如果選擇/未選擇組合框,如何啓用/禁用控件(如文本框,標籤,文本塊)?例如如果選擇的索引大於零,則啓用控件其他禁用。如何將控件的IsEnabled屬性與組合框選擇綁定?在Xaml中啓用/禁用組合框選擇上的控件
-1
A
回答
2
您可以將IsEnabled
綁定到組合框的SelectedIndex
屬性,並使用IValueConverter
將其轉換爲布爾值。例如,在你的XAML(說明啓用一個Button
):
<ComboBox x:Name="cmbBox" ItemsSource="{Binding Source={StaticResource DataList}}"/>
<Button Grid.Column="1" IsEnabled="{Binding ElementName=cmbBox, Path=SelectedIndex, Converter={StaticResource IndexToBoolConverter}}"/>
然後,你需要一個轉換器爲好,如:
public class IndexToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((int)value > 0)
{
return true;
}
else
{
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
您還可以聲明轉換爲資源,如在你的窗口中。
<local:IndexToBoolConverter x:Key="IndexToBoolConverter"/>
1
我可能會做這樣的事情。
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SelectedItem,
ElementName=TheCombo}"
Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<ComboBox x:Name="TheCombo" Width="100">
<ComboBoxItem>Blah</ComboBoxItem>
<ComboBoxItem>Blah</ComboBoxItem>
<ComboBoxItem>Blah</ComboBoxItem>
</ComboBox>
<Button Content="Click Me" Margin="0,10"/>
</StackPanel>
</Grid>
希望這會有所幫助,歡呼!
相關問題
- 1. 啓用/禁用組合選擇上的文本框
- 2. 組合 - 選擇啓用/禁用
- 3. 從組合框中選擇啓用不同的組合框
- 4. zk - 禁用組合框的鍵控件
- 5. 禁用ListView控件上的組選擇ListView控件WinForms
- 6. 在單選按鈕檢查上啓用/禁用選擇框
- 7. 在XAML中使用RadioButtons啓用/禁用WPF控件
- 8. 選擇一個組合框項目XAML
- 9. C#根據組合框選擇啓用/禁用多個文本框
- 10. 啓用在選擇中禁用選項
- 11. 如何根據另一個組合框中的選擇禁用組合框?
- 12. 如何禁用多個組合框JQuery中選擇的組合框值?
- 13. 啓用/禁用Excel 2007組合框
- 14. 組合框禁用C#啓用與js
- 15. javascript啓用和禁用組合框
- 16. 基於選擇的選項啓用/禁用選擇框
- 17. 在datalist複選框中禁用/啓用asp按鈕控件checked複選框javascript?
- 18. IE 6選擇控件(組合框)在菜單上
- 19. 在選項卡控件中清除組合框選擇
- 20. 如何禁用vb.net中自動選擇的組合框
- 21. 在SWT中禁用組件選擇
- 22. 如何在xaml中的複選框對象上禁用dash + equals?
- 23. 組合框禁用編輯並啓用默認選擇C++生成器
- 24. 在IE中啓用/禁用複選框
- 25. 如何啓用組合框中多個值的選擇?
- 26. 如何禁用使用Javascript在另一個組合框中選擇的組合框的值?
- 27. 禁用/啓用選擇
- 28. 請選擇控件可見使用XAML
- 29. 在用戶控件中的組合框上調用SelectedIndexChanged
- 30. 使用組合框禁用/啓用小部件?
您綁定了IsEnabled – Paparazzi
@Paparazzi我更新了問題。 – bill
在ComboboxSelection的'PropertyChanged'事件中,您需要更新綁定到要啓用/禁用的控件的IsEnabled屬性的** VM **中的其他屬性。 – Kidiskidvogingogin