2010-08-25 56 views
2

我想和失敗,創建一個WPF中的標籤和文本框的列表。我是一名ASP.NET開發人員,目前XAML體驗稍微壓倒了我...我擁有Apress的WPF 3.0書,面向我,並且找到零用途...如何動態創建WPF中的標籤和文本框列表?

在我的過程結束時我希望用戶完成一些對該用戶而言是動態的問題。我有一個對象數組,具有「問題」和「答案」的屬性。

我想讓「問題」作爲標籤出現。

我一直在尋找的ListView控件,但這似乎只是給我一個Excel的網格座標,這我不感興趣的

在ASP.NET的世界,我會使用一個GridView,有兩個列,一個帶有Label,另一個帶有TextBox。在提交頁面時,我會遍歷網格視圖中的項目,以挑選出文本框的值,並將其關聯回數組中的正確對象。

有人可以請直接指導,或者告訴我我應該在WPF中使用哪些控件?

額外信息; 這是使用.NET 4.0,Visual Studio 2010中

乾杯 斯圖

回答

10

絕對沒有必要使用一個DataGrid對於這麼簡單的東西。使用一個基本的ItemsControl可以完成你正在尋找的東西,而不需要這種複雜控制的開銷。這種方法也很容易通過更改ItemTemplate進行自定義。

<ItemsControl ItemsSource="{Binding QuestionsToAnswer}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="100"/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 

       <TextBlock Text="{Binding QuestionText}"/> 
       <TextBox Text="{Binding AnswerText}" Grid.Column="1"/> 
      </Grid> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
+0

+1,我在想同樣的事情。 – mdm20 2010-08-25 16:22:46

+1

您可能希望將TextBox放在第二個列「Column =」1「」中,否則它將與TextBlock重疊。糾正我,如果我錯了,但多數民衆贊成我的經驗的網格佈局控制。 – 2010-08-25 16:26:10

+0

我同意一個Items控件也是一個很好的解決方案!它總是取決於你特定的場景。我喜歡網格的東西,你總是可以自動排列'列'。在你提供的例子中......他們確實排隊......但你被固定在第一列的寬度上。數據網格會自動調整大小以解決您最大的問題。 – Scott 2010-08-25 16:28:56