C# Wpf数据绑定到对象';s属性属性
所以我知道有很多数据绑定响应,但我找不到我想要的。或者我不能让它正常工作 在我的例子中,我有一个类,它有两个属性类型FootScan,如下所示:C# Wpf数据绑定到对象';s属性属性,c#,wpf,data-binding,C#,Wpf,Data Binding,所以我知道有很多数据绑定响应,但我找不到我想要的。或者我不能让它正常工作 在我的例子中,我有一个类,它有两个属性类型FootScan,如下所示: public class ScanResult { public FootScan LeftFoot { get; set; } public FootScan RightFoot { get; set; } public string Name { get; set; } ... } public class F
public class ScanResult
{
public FootScan LeftFoot { get; set; }
public FootScan RightFoot { get; set; }
public string Name { get; set; }
...
}
public class FootScan
{
public string ImagePath { get; set; }
public double FootLength { get; set; }
...
}
在我的窗口中,我有:
public ScanResult CurrentScan
{
get { return (ScanResult)this.GetValue(CurrentScanProperty); }
set { this.SetValue(CurrentScanProperty, value); }
}
public static readonly DependencyProperty CurrentScanProperty = DependencyProperty.Register(
"CurrentScan", typeof(ScanResult), typeof(wndScanner), new PropertyMetadata(null));
在加载的窗口上:
CurrentScan = new ScanResult();
CurrentScan.LeftFoot = new FootScan();
CurrentScan.LeftFoot.FootLength = 285; //Normally comes from the scan result.
在XAML方面,我想将textblock的text属性绑定到CurrentScan.LeftFoot.FootLength:
我试着:
1- <TextBlock x:Name="tbFootLength" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding CurrentScan.LeftFoot.FootLength}" VerticalAlignment="Top" Margin="10,0,0,0" FontFamily="Calibri" FontSize="15"/>
2- <Grid x:Name="grdMeasures" DataContext="{Binding CurrentScan}" Margin="0,35,0,256" Background="#FFE7E7F3">
<TextBlock x:Name="tbFootLength" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding LeftFoot.FootLength}" VerticalAlignment="Top" Margin="10,0,0,0" FontFamily="Calibri" FontSize="15"/>
</Grid>
3- <Grid x:Name="grdMeasures" DataContext="{Binding CurrentScan.LeftFoot}" Margin="0,35,0,256" Background="#FFE7E7F3">
<TextBlock x:Name="tbFootLength" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding FootLength}" VerticalAlignment="Top" Margin="10,0,0,0" FontFamily="Calibri" FontSize="15"/>
</Grid>
1-
2-
3-
有什么想法吗
谢谢。如果
CurrentScan
是定义了TextBlock
的窗口的属性,则此绑定应该可以工作:
Text="{Binding CurrentScan.LeftFoot.FootLength,
RelativeSource={RelativeSource AncestorType=Window}}"
不要忘记初始化
CurrentScan
属性,即设置它。在哪里定义了CurrentScan
?在与TextBlock
?Text=“{Binding CurrentScan.LeftFoot.FootLength}”相同的窗口中,如果您已将窗口的DataContext设置为自身,例如通过DataContext=this
在其constructor.mm8中,我编辑了问题,添加了CurrentScan的初始化部分。@CoskunOzogul:然后尝试设置绑定的源。请看我的答案。我尝试了这些解决方案。它不起作用。我想我遗漏了什么。窗口中是否有TextBlock
?请发布您的完整代码。它是这样工作的:DataContext=this;装载。在xaml文本中,“{Binding ElementName=mw,Path=CurrentScan.LeftFoot.FootLength}”。谢谢您的帮助。如果您绑定到ElementName
或RelativeSource
,则不需要DataContext=this
。