C# 多重绑定查找丢失的祖先源错误:简单提示?
假设我有这样一个UserControl:C# 多重绑定查找丢失的祖先源错误:简单提示?,c#,wpf,user-controls,multibinding,imultivalueconverter,C#,Wpf,User Controls,Multibinding,Imultivalueconverter,假设我有这样一个UserControl: <UserControl x:Class="SandBox.IconUC" xmlns:sb="clr-namespace:SandBox" x:Name="Icon_Control" ...> <UserControl.Resources> <sb:IconActualScalingConverter x:K
<UserControl
x:Class="SandBox.IconUC"
xmlns:sb="clr-namespace:SandBox"
x:Name="Icon_Control" ...>
<UserControl.Resources>
<sb:IconActualScalingConverter x:Key="IconActualScaling_Converter" />
</UserControl.Resources>
<!-- ... -->
<ScaleTransform.ScaleX>
<MultiBinding Converter="{StaticResource IconActualScaling_Converter}">
<Binding Path="BaseSize" ElementName="Icon_Control" />
<Binding
Path="ScalingOverride"
RelativeSource="{RelativeSource AncestorType=sb:ContainerUC}" />
</MultiBinding>
</ScaleTransform.ScaleX>
<!-- ... -->
</UserControl>
谢谢。这只是Visual Studio调试窗口中的一个警告。它不会影响任何事情,它只是给你的一个信息。在这种情况下,将不会设置绑定。删除此警告消息有什么意义?啊!?你确定我可以把那个警告留在那里继续吗?我假设“warning=代码中有错误…”这就是为什么我要寻找修复这个确切的特定警告的步骤。是的,绑定没有设置,这就是为什么我在转换器中有dependencProperty.unset值,但在我看来很粗糙。我只是希望我错过的东西可以在xaml多重绑定中完成。但如果是这样的话,数据绑定警告只是一条诊断消息。因此,如果您知道缺少绑定源是可以的,那么就忽略该警告。它可能会帮助您发现数据绑定问题,例如。G如果您必须解决所有绑定。好的:)谢谢。ScalingOverride绑定仅用于显示祖先范围内的目的;如果祖先不在那里,我实际上不必解析这个绑定。稍后我可能会使用“wpf可继承属性”作为解决方法(对不起,我很固执,我知道,但是这些警告让我有些不舒服:P)
public class IconActualScalingConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double definedScaling = (double)values[0];
double scalingFactor = 1.0;
if (values.Length > 1)
{
if (values[1] != DependencyProperty.UnsetValue)
{
scalingFactor = (double)values[1];
}
}
return definedScaling * scalingFactor;
}
public object[] ConvertBack(...)
{
throw new NotImplementedException();
}
}