2011-06-10 92 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