3つのラジオボタンのグループがあります。どのラジオボタンが選択されているかに応じて、テキストボックス、ドロップダウンリスト、またはボタンの3つのコントロールのうちの1つを切り離したいとします。選択したラジオボタンの結果に基づいてコントロールを表示するにはどうすればよいですか?選択したラジオボタンに基づいてコントロールを表示
3
A
答えて
15
あなたはBooleanToVisibilityConverter
使用して、ラジオボタンのにisCheckedプロパティにコントロールの可視性をバインドすることができます。
<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>
EDIT:
ソリューションは素晴らしい作品、それが実現するのは簡単です。とにかく、コントロールがデザインモードで隠れてしまうのを防ぐことができますか?
私は他のデザイナー(例えばブレンド)については知らないが、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. divをラジオボタンの選択に基づいて表示/非表示
- 2. ラジオボタンの選択に基づいて異なるウィジェットを表示する
- 3. 選択に基づいてdivを表示/非表示
- 4. RadioButtonListに基づいてDivタグを非表示/表示選択した値
- 5. ラジオボタンの選択に基づいてテーブルをフィルタリングします。
- 6. ラジオボタンの選択に基づく計算
- 7. ラジオボタンの選択に基づくフィルタレコード
- 8. ラジオボタンの選択に基づくモーダルポップアップ
- 9. ドロップダウンボックスの選択に基づいて選択ボックスを表示または非表示にします
- 10. ラジオボタンの選択に基づいてテキストを動的に表示/非表示にする
- 11. 選択ボックスの選択に基づいて隠しフォームフィールドを表示
- 12. 選択非表示の選択ボックスと選択ボックスオプションを選択に基づいて選択します。
- 13. ラジオボタンの選択に基づいてdivを表示および非表示にする方法
- 14. ラジオボタンの選択に基づいてCSSとのリンクを表示/非表示にする
- 15. 選択したラジオボタンに基づいてテキストボックスを有効にします。
- 16. ラジオボタンの選択に基づいてフィールド値を増やす
- 17. jsonレスポンスに基づいてラジオボタンを選択
- 18. 選択したラジオボタンに基づいてテキストボックスを有効にする
- 19. CSSで以前は非表示になっていたイメージを、JavaScriptを使用して選択したラジオボタンに基づいて表示します。
- 20. Django Jquery:選択に基づいて、さらに選択オプションを表示
- 21. 選択フィールドを取得して、選択IDに基づいて他の選択フィールドを表示します
- 22. ドロップダウン選択に基づいてモーダルポップアップウィンドウを表示
- 23. ExtJS 5.0.1コンボボックスの選択に基づいてグリッドを表示
- 24. 複数のdivをドロップダウンの選択に基づいて表示
- 25. JavaScript送信ボタンラジオの選択に基づいてライトボックスを表示
- 26. ユーザの選択に基づいてグリッドビューの列を表示
- 27. チェックボックスの選択に基づいて結果を表示
- 28. 選択値に基づいてフィールドを表示
- 29. ドロップダウンメニューの選択に基づいて番号を表示
- 30. ユーザーの選択に基づいてコンテンツを表示
この解決策はうまく機能し、実装が簡単です。とにかく、コントロールがデザインモードで隠れてしまうのを防ぐことができますか? – DenaliHardtail
その質問に答えるために投稿を更新しました –