C# WP8.1/WinRT用户控件绑定自绑定依赖项属性
我有一个用户控件,它将多个属性传递给一个内部文本块,如下所示:C# WP8.1/WinRT用户控件绑定自绑定依赖项属性,c#,xaml,windows-runtime,windows-phone-8.1,C#,Xaml,Windows Runtime,Windows Phone 8.1,我有一个用户控件,它将多个属性传递给一个内部文本块,如下所示: <UserControl x:Name="Root"> <Grid> <TextBlock x:Name="ContentBlock" TextWrapping="WrapWholeWords" FontFamily="{Binding FontFamily}"
<UserControl x:Name="Root">
<Grid>
<TextBlock x:Name="ContentBlock"
TextWrapping="WrapWholeWords"
FontFamily="{Binding FontFamily}"
FontWeight="{Binding FontWeight}"
Text="{Binding Text}"
LineHeight="{Binding LineHeight}"
Foreground="{Binding Foreground}"
/>
</Grid>
</UserControl>
在我使用此控件的地方,我绑定到以下几个属性:
<controls:CustomTextBlock Text="{Binding Question.Text}"
FontSize="30"
MaxHeight="130"
Margin="0, 0, 10, 0"/>
但是,文本没有正确地通过绑定传递到控件中。我所看到的一切都表明这应该有效,但事实并非如此。知道是什么原因导致我的文本无法传递到dependency属性吗?您的控件是CustomTextBlock类型,但该属性被定义为typeofShrinkingTextBlock所有。这些需要与绑定匹配才能正常工作。我觉得很合适。。。您在输出窗口中看到任何绑定错误吗?我看不到任何绑定错误,没有。抱歉,在对代码进行动画化时错过了。它们在为修复而编辑的实际代码中确实匹配。在控件尚未加载但已创建控件时更改DataContext可能不会引发绑定更新。如果仅用SetValue替换SetValueDp并删除INotifyPropertyChanged实现,是否可行?控件不应该真正实现这一点。当一个直接的SetValue不起作用时,我添加了SetValueDp。我只需要向Text属性添加一个更改处理程序,并手动更新TextBlock的文本。实际上,它会为你节省一些周期。
<controls:CustomTextBlock Text="{Binding Question.Text}"
FontSize="30"
MaxHeight="130"
Margin="0, 0, 10, 0"/>