[英]WP7 Building the UI(.xaml) from a list(.cs)
我是.Net開發人員,也是WP7開發的新手。我想做的是根據列表中有多少項來構建我的界面。 我的物品是帶有名稱,地址,2個電話號碼和一張圖片的代理商。
在我的.cs文件中:
Agence agence1 = new Agence();
agence1.Name = "Name1";
agence1.Adress = " Adress1";
agence1.Telephone = "Tel1";
agence1.Telephone2 = "Tel01";
agence1.Region = "Region1";
agence1.Source=newBitmapImage(newUri(@"/App/Images/call.jpg",UriKind.Relative));
listAgences.Add(agence1);
在每個代理的xaml文件中:
<Grid x:Name="Agence1" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="280"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0">
<TextBlock Height="30" HorizontalAlignment="Center" Name="textBlock1" Text="{Binding listAgences[0].Nom}" VerticalAlignment="Top" FontSize="18" Foreground="Black" FontWeight="Bold" />
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1">
<TextBlock Height="30" HorizontalAlignment="Center" Name="textBlock5" Text="..." VerticalAlignment="Top" FontSize="15" Foreground="Black" />
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="0">
<TextBlock Height="30" HorizontalAlignment="Center" Name="textBlock2" Text="Adresse" VerticalAlignment="Top" FontSize="18" Foreground="Black" />
</StackPanel>
<StackPanel Grid.Row="2" Grid.Column="0">
<TextBlock Height="30" HorizontalAlignment="Center" Name="textBlock3" Text="Téléphone :" VerticalAlignment="Top" FontSize="18" Foreground="Black" />
</StackPanel>
<StackPanel Grid.Row="2" Grid.Column="1">
<TextBlock Height="50" HorizontalAlignment="Center" Name="textBlock6" Text="..." VerticalAlignment="Bottom" FontSize="15" Foreground="Black" Width="279" Padding="10,15,0,0"/>
</StackPanel>
<StackPanel Grid.Row="2" Grid.Column="2" Height="50" VerticalAlignment="Bottom" Margin="0">
<Image Height="30" Name="image1" HorizontalAlignment="Center" Source="/App;component/Images/call.png" Margin="0,10,0,0" />
</StackPanel>
<StackPanel Grid.Row="4" Grid.Column="0">
<TextBlock Height="30" HorizontalAlignment="Center" Name="textBlock4" Text="Telephone 2 :" VerticalAlignment="Top" FontSize="18" Foreground="Black" />
</StackPanel>
<StackPanel Grid.Row="3" Grid.Column="1">
<TextBlock Height="50" HorizontalAlignment="Center" Name="textBlock7" Text="..." VerticalAlignment="Bottom" FontSize="15" Foreground="Black" Width="279" Padding="10,15,0,0"/>
</StackPanel>
</Grid>
現在我有4個硬編碼的代理商被添加到我的列表中。 因此,在我的xaml文件中,我的編碼是上述xaml中代碼的四倍。 不久,我將使用網絡服務來獲得代理商。 我想要的只是上面的代碼一次,做這樣的事情:
在MVC模式中,我會為菜單做一些類似aspx頁面中的操作:
<ul>
<% foreach (var agence in listAgences) { %> <li><%: agence.Name %></li> <% } %>
... building the UI
</ul>
我不希望手機應用程序中的菜單只是一個快速的例子。我不知道如何使用WPF / xaml。 我可以在xaml文件中執行此操作,還是必須在.cs文件中構建接口,例如:this.add(Grid);? this.Add(StackPanel); ...
謝謝您的幫助。
首先,WP7使用Silverlight,而不是WPF。
在XAML中,您將所有TextBlocks放在單獨的StackPanels中。 為什么?
此外,分配的行號與行定義不匹配,並且您不必要在項目上設置高度。
當您說“以MVC模式”時,您將顯示一個使用HTML的示例。 我假設您的意思是在使用ASP.NET MVC(基於語法和嵌入式代碼)時。 您的示例與實際的MVC模式無關。
要嘗試解決問題(歸結為顯示對象列表),請查看在創建新的“數據綁定應用程序”時默認情況下創建的內容。 除了使用ItemViewModel之外,您還可以使用Agence
。 然后,查看MainPage.xaml中的DataTemplate,以了解如何自定義對象內容的顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.