我有一些stackpanel,在他下面有4个文本块,需要显示一些信息。 我对stackpanel(DataContext)进行了一些绑定,并将textblock与绑定到stackpanel的对象保存的信息绑定在一起。
我写了代码+ xaml并没什么用。 我对格式错误有异常。
代码:
public partial class SomeDemoClass: UserControl
{
classObjDemo c1;
public SomeDemoClass()
{
InitializeComponent();
c1 = new classObjDemo()
{
val1 = 5.5,
val2 = 2.3
};
}
}
xaml(与'SomeDemoClass'类匹配)
<StackPanel x:Name="LayoutRoot" DataContext="{Binding ElementName=SomeDemoClass, Path=c1">
<TextBlock Text="{Binding val1, StringFormat={0:F} }" />
<TextBlock Text="{Binding val2, StringFormat={0:F} }" />
</StackPanael>
答案 0 :(得分:1)
你把x:Name =“SomeDemoClass”放在你的xaml的op中,并使c1成为一个公共属性而不是它可以工作的字段。 ElementName按名称引用xaml中的元素,绑定仅适用于属性和依赖项属性。
<UserControl x:Name="SomeDemoClass" ...
public classObjDemo c1 { get; set; }
还要检查Visual Studio输出窗口是否存在绑定错误。
修改
还要确保classObjDemo的v1和v2是公共属性
逃离你的xaml。见http://elegantcode.com/2009/04/07/wpf-stringformat-in-xaml-with-the-stringformat-attribute/
<TextBlock Text="{Binding val2, StringFormat={}{0:F} }" />