2010-09-10 77 views
0

我在寫一個應用程序,用戶輸入記錄。我有一個代表記錄的班級。將其綁定到文本字段的作品。Silverlight數據綁定

MainPage.xaml.cs中

public MainPage() 
    { 
     InitializeComponent(); 

     // newExpense is of type ExpenseInfo 
     LayoutRoot.DataContext = newExpense; 
    } 

ExpenseInfo.cs

public class ExpenseInfo 
{ 

    public String Name { get; set; } 

    // ... 
} 

MainPage.xaml中

<TextBox Text="{Binding Name, Mode=TwoWay}" Height="23" HorizontalAlignment="Left" Margin="13,205,0,0" Name="NameTextBox" VerticalAlignment="Top" Width="74" /> 

Ť他的作品獲取和設置輸入。兩個問題:

如果我有一個ListBox,其成員我試圖用ICollection代表ExpenseInfo?我可以自動綁定它嗎?如果我使用ComboBox呢?

有時,我想讓ExpenseInfo更改輸入控件。我怎樣才能做到這一點? (例如,如果用戶在「費用」文本框中鍵入「3 $ 0」,我想自動將其更改爲「$ 30」。)

謝謝。我是Silverlight 4的新手。

回答

1

如果您可以將單個記錄綁定到文本字段,那麼這些記錄的標準集合將以與收集字段非常相似的方式進行綁定。所以是的,你可以做到這一點,雖然組合框的細節有所不同。 This article有關於WPF中數據綁定的更多信息,但它聽起來像是你有一個很好的基本句柄。

要自動更正錯誤數據,請閱讀有關Validation過程的文章。它解釋瞭如何設置自己的系統來檢測和報告用戶輸入中的錯誤。處理無效數據不必在UI中顯示警告 - 如果您知道如何執行該操作,您可以回寫到TextBox的.Value字段以自動更正輸入,但是由編寫代碼決定既要檢測出什麼問題,又要弄清楚什麼是正確的。