[解決済み] バインディングConverterParameter
2022-04-21 17:47:45
質問
の中で行う方法はありますか?
Style
:
<Style TargetType="FrameworkElement">
<Setter Property="Visibility">
<Setter.Value>
<Binding Path="Tag"
RelativeSource="{RelativeSource AncestorType=UserControl}"
Converter="{StaticResource AccessLevelToVisibilityConverter}"
ConverterParameter="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Tag}" />
</Setter.Value>
</Setter>
</Style>
を送るだけでいいのです。
Tag
を、トップレベルの親と
Tag
をコンバータ・クラスに変換しています。
どのように解決するのですか?
その
ConverterParameter
プロパティは、依存関係プロパティではないため、バインドできません。
このため
Binding
から派生したものではありません。
DependencyObject
は、どのプロパティも依存プロパティにはなりえません。結果として、バインディングは他のバインディングのターゲットオブジェクトになることはできません。
しかし、別の解決策があります。それは
MultiBinding
と
マルチバリューコンバータ
の代わりに、通常のBindingを使用します。
<Style TargetType="FrameworkElement">
<Setter Property="Visibility">
<Setter.Value>
<MultiBinding Converter="{StaticResource AccessLevelToVisibilityConverter}">
<Binding Path="Tag" RelativeSource="{RelativeSource Mode=FindAncestor,
AncestorType=UserControl}"/>
<Binding Path="Tag" RelativeSource="{RelativeSource Mode=Self}"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
多値変換器は、入力としてソース値の配列を取得します。
public class AccessLevelToVisibilityConverter : IMultiValueConverter
{
public object Convert(
object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values.All(v => (v is bool && (bool)v))
? Visibility.Visible
: Visibility.Hidden;
}
public object[] ConvertBack(
object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
関連
-
例外の解決方法 GDI+でジェネリックエラーが発生しました。
-
[解決済み] [Solved] StackPanelの子要素をスペースアウトさせるには?
-
[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?
-
[解決済み] DataTrigger where value is NOT null?
-
[解決済み] バインディングConverterParameter
-
[解決済み] WPF フォントのぼやけ問題- 解決策
-
[解決済み] WPFでイベント処理のためにリソース辞書の後ろにコードを設定することは可能ですか?
-
[解決済み] MVVMテンプレートの好例
-
[解決済み] WPF: スクロールバー付きItemsControl (ScrollViewer)
-
[解決済み] 読み取り専用のGUIプロパティをViewModelにプッシュバックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
WPFバインディング(データバインディング)の使用方法
-
[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?
-
[解決済み] オーバーレイコントロールを他のすべてのコントロールの上に配置するには?
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] WPFバインディングを使用して2つのコマンドパラメータを渡す
-
[解決済み] WPF Numeric UpDownコントロールはどこにありますか?
-
[解決済み] WPF: スクロールバー付きItemsControl (ScrollViewer)
-
[解決済み] WPFのキーボードショートカット
-
[解決済み] 読み取り専用のGUIプロパティをViewModelにプッシュバックする
-
[解決済み] ViewModelLocatorとは何ですか?また、DataTemplatesと比較した場合の長所と短所は何ですか?