タグ付けされた質問 「relativesource」


6
WPF TemplateBindingとRelativeSource TemplatedParent
これらの2つのバインディングの違いは何ですか? <ControlTemplate TargetType="{x:Type Button}"> <Border BorderBrush="{TemplateBinding Property=Background}"> <ContentPresenter /> </Border> </ControlTemplate> そして <ControlTemplate TargetType="{x:Type Button}"> <Border BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}"> <ContentPresenter /> </Border> </ControlTemplate> ?

6
DataTemplateから親DataContextにアクセスする
私が持っているListBoxのViewModel上の子コレクションにどのバインドを。リストボックスアイテムは、親ViewModelのプロパティに基づいて、データテンプレートでスタイル設定されます。 <Style x:Key="curveSpeedNonConstantParameterCell"> <Style.Triggers> <DataTrigger Binding="{Binding Path=DataContext.CurveSpeedMustBeSpecified, ElementName=someParentElementWithReferenceToRootDataContext}" Value="True"> <Setter Property="Control.Visibility" Value="Hidden"></Setter> </DataTrigger> </Style.Triggers> </Style> 次の出力エラーが発生します。 System.Windows.Data Error: 39 : BindingExpression path error: 'CurveSpeedMustBeSpecified' property not found on 'object' ''BindingListCollectionView' (HashCode=20467555)'. BindingExpression:Path=DataContext.CurveSpeedMustBeSpecified; DataItem='Grid' (Name='nonConstantCurveParametersGrid'); target element is 'TextBox' (Name=''); target property is 'NoTarget' (type 'Object') したがって、バインド式を変更する"Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"と機能しますが、親ユーザーコントロールのデータコンテキストがである場合に限りますBindingListCollectionView。これは許容されないためのプロパティにユーザーコントロールのバインドの残りの部分CurrentItemにBindingList自動的に。 親データコンテキストがコレクションビューまたは単一のアイテムであるかどうかに関係なく機能するように、スタイル内でバインディング式を指定するにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.