我有一組三個單選按鈕。根據所選的單選按鈕,我想忽略三個控件之一 - 一個文本框,一個下拉列表或一個按鈕。如何根據所選單選按鈕的結果顯示控件?顯示基於所選單選按鈕的控件
3
A
回答
15
您可以將控件綁定到的單選按鈕的器isChecked財產的知名度,使用BooleanToVisibilityConverter
:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<BooleanToVisibilityConverter x:Key="convVisibility"/>
</Page.Resources>
<Grid>
<StackPanel Orientation="Vertical">
<RadioButton Name="radioButton1" GroupName="group1">Control1</RadioButton>
<RadioButton Name="radioButton2" GroupName="group1">Control2</RadioButton>
<RadioButton Name="radioButton3" GroupName="group1">Control3</RadioButton>
<Grid>
<Button Visibility="{Binding IsChecked, ElementName=radioButton1, Converter={StaticResource convVisibility}}">1. Button</Button>
<TextBlock Visibility="{Binding IsChecked, ElementName=radioButton2, Converter={StaticResource convVisibility}}">2. TextBlock</TextBlock>
<TextBox Visibility="{Binding IsChecked, ElementName=radioButton3, Converter={StaticResource convVisibility}}">3. TextBox</TextBox>
</Grid>
</StackPanel>
</Grid>
</Page>
編輯:
這解決方案的偉大工程,這是很容易實現。無論如何,我可以阻止控件在設計模式下隱藏嗎?
我不知道其他設計師(混合爲例),但在Visual Studio設計的控制是從來沒有隱瞞過......
不管怎麼說,你可以實現自己的轉換器,它總是會返回在設計模式下可見。由於某些不明確的原因,BooleanToVisibilityConverter類是封閉的,所以你不能繼承它。您可以委託轉換爲BooleanToVisibilityConverter相反,如果你不希望重寫轉換邏輯:
public class MyBooleanToVisibilityConverter : IValueConverter
{
private BooleanToVisibilityConverter _converter = new BooleanToVisibilityConverter();
private DependencyObject _dummy = new DependencyObject();
private bool DesignMode
{
get
{
return DesignerProperties.GetIsInDesignMode(_dummy);
}
}
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (DesignMode)
return Visibility.Visible;
else
return _converter.Convert(value, targetType, parameter, culture);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return _converter.ConvertBack(value, targetType, parameter, culture);
}
#endregion
}
1
爲了使組件在設計時可見,你可以在複選框true
的FallbackValue
添加爲:
<RadioButton x:Name="cbxEmail" Content="Email Details" IsEnabled="{Binding IsEmail, FallbackValue=true}" IsChecked="{Binding IsEmail, Mode=OneWay, FallbackValue=true}"
Grid.Column="2"/>
相關問題
- 1. 單選按鈕控件中顯示
- 2. 單選按鈕 - 顯示基於與jQuery的選中按鈕的DIV
- 3. 顯示面板基於單選按鈕上選擇(S)
- 4. 基於單選按鈕選擇顯示/隱藏CSS鏈接
- 5. 角JS:顯示DIV基於單選按鈕選擇
- 6. 基於單選按鈕選擇顯示/隱藏div
- 7. 顯示或隱藏基於多個單選按鈕選擇
- 8. 基於值的單選按鈕選擇
- 9. 單選按鈕隱藏/顯示所有
- 10. 基於其他單選按鈕的單選按鈕切換
- 11. 顯示所選的單選按鈕並隱藏所有其他
- 12. 基於單選按鈕的隱藏/顯示點擊
- 13. 單選按鈕不顯示
- 14. 基於MVC用戶控件的單選按鈕需要幫助
- 15. 如何基於懸停在單選按鈕,以顯示格
- 16. 隱藏和顯示基於值單選按鈕和下拉
- 17. 顯示隱藏文本框基於單選按鈕列表值
- 18. 基於單選按鈕顯示/隱藏表格行
- 19. 基於單選按鈕點擊顯示和隱藏div
- 20. 單選按鈕控件
- 21. 突出顯示所選單選按鈕周圍的div類?
- 22. 在所有未選中的單選按鈕上顯示輪廓
- 23. 顯示內容選擇單選按鈕
- 24. 單選按鈕不顯示選中
- 25. 如何使用jQuery顯示/隱藏基於單選按鈕選擇的div?
- 26. 使用jQuery來顯示基於單選按鈕選擇的警報
- 27. 根據所選單選按鈕,按鈕如何顯示不同的結果
- 28. 動態顯示關於選擇的單選按鈕
- 29. 如何使基於條件的單選按鈕被選中?
- 30. C#:基於單選按鈕選擇的條件引用dll's
該解決方案效果很好,實施起來很簡單。無論如何,我可以阻止控件在設計模式下隱藏嗎? – DenaliHardtail 2009-06-25 21:00:36