その中に aGrid
と a コンポーネントがあります。子供たちはデフォルトのファイルを使用する必要がありますが、にはカスタムがありGrid
ます。DataContext
.xaml.cs
もちろん、DataContext
親コントロールの を変更すると、子の も変更されます。
そのため、子供たちDataContext
をxaml.cs
ファイルに設定する必要があります。
使ってみDataContext="{Binding}"
ますがうまくいきません。
どうやってやるの?
編集:返信に基づく私のコードは次のとおりです
<UserControl x:Class="MyNamespace.MyClass"
x:Name="MyName"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:lsp="clr-namespace:LSPlugins"
xmlns:utils="clr-namespace:LSPlugins.Utilities"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
d:DesignHeight="480" d:DesignWidth="480">
<UserControl.Resources>
<utils:ColorToSolidColorBrushValueConverter x:Key="ColorConverter"/>
<lsp:MyModel x:Key="MyModel" x:Name="MyModel"/>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" DataContext="{StaticResource MyModel}" Background="{Binding Path=BackgroundColor, Converter={StaticResource ColorConverter}}" Opacity="{Binding Path=BackgroundOpacity}">
<ContentPresenter Content="{Binding PresenterContent}" DataContext="{Binding ElementName=MyName}"/>
</Grid>
</UserControl>
私は両方を試しましName
たx:Name
が、まだ機能せず、次の例外がスローされます。
System.Windows.Data エラー: BindingExpression パス エラー: 'PresenterContent' プロパティが 'MyNamespace.MyModel' 'MyNamespace.MyModel' に見つかりません (HashCode=63183526)。BindingExpression: Path='PresenterContent' DataItem='MyNamespace.MyModel' (HashCode=63183526); ターゲット要素は 'System.Windows.Controls.ContentPresenter' (Name='') です。ターゲット プロパティは 'Content' (タイプ 'System.Object') です。