2011-06-10 53 views
0

我有一些在他下面有4个文本块需要显示一些信息的堆叠面板。 我对stackpanel(DataContext)进行了一些绑定,并将绑定文本块与绑定到堆栈面板的对象所保存的信息进行绑定。如何绑定Stackpanel和stringFormat?

我写了代码+ 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> 

回答

1

你把x的:NAME = “SomeDemoClass” 在你的XAML的运并使c1成为一个公共财产,而不是一个可以工作的领域。 ElementName通过名称引用xaml中的元素,绑定仅适用于属性和依赖项属性。

<UserControl x:Name="SomeDemoClass" ... 

public classObjDemo c1 { get; set; } 

还检查您的Visual Studio输出窗口的绑定错误。

编辑

同时确保V1和classObjDemo的V2是公共属性

和逃避{您的XAML。见http://elegantcode.com/2009/04/07/wpf-stringformat-in-xaml-with-the-stringformat-attribute/

<TextBlock Text="{Binding val2, StringFormat={}{0:F} }" /> 
+0

它不可能理解你写的东西。 – Yanshof 2011-06-10 22:43:30

+0

添加了一些代码示例 – 2011-06-10 22:48:02

+0

我将此添加到我的代码 - 将字段更改为属性 - 并没有什么好玩的。仍然不起作用。 – Yanshof 2011-06-10 22:49:41