0

N 個のラジオ ボタンがあり、ラジオ ボタンの選択に基づいて、wpf アプリケーションで N 個のユーザー コントロールのうち 1 個のユーザー コントロールを表示したいと考えています。使用するコードを減らし、xaml を増やしたいのですが、これに対する適切な解決策を提案してください。

ありがとう、

4

2 に答える 2

1

First, put all the controls you want to show in your XAML. (on top of each other if you want...) Then, put the following code inside of each of those controls to turn on and off visibility for your controls.

Visibility="{Binding Path=IsMyControlVisible, Converter={StaticResource BooleanToVisibilityConverter}}"

In your code behind, implement a property for each of the controls you want to show/hide (for the above control call the property 'IsMyControlVisible'.

Then, Bind your radio button IsChecked to your IsMyControlVisible property.

IsChecked="{Binding IsMyControlVisible, Mode=OneWayToSource, FallbackValue=false }"

Lastly, if you're just using code-behind for the IsMyControlVisible property, you should put the following in your xaml for your control to set the data context to your code-behind:

DataContext="{Binding RelativeSource={RelativeSource Self}}"
于 2012-04-26T22:27:21.067 に答える
0

あなたが持っているのは(動作を説明するキャプション; ユーザーコントロール)のリストです。
MyUserOptions を定義します: ControlCaption と UserControl をパブリック プロパティとして持つクラスです。
そのような「MyUserOptions」のリストを作成します

そのリストを ListView に表示し、選択したアイテムに必要な外観を設定します。MyUserOptions の dataTemplate はキャプションを表示するだけです。そのリストビューの下に、ListView SelectedItem を DataContext として持ち、UserControl プロパティにバインドする ContentControl を配置します。

于 2012-04-27T10:47:28.827 に答える