Comment afficher les éléments horizontalement dans un contrôle listbox?
Je suis en train d'élaborer le window phone 7 application. Je suis nouveau à la fenêtre phone 7 application. J'ai l'suivantes du contrôle listbox dans mon application
<ListBox Margin="0,355,70,205" Name="WeekSummaryListBox" DataContext="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Amount}" Foreground="Orange"></TextBlock>
<TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Currency}" Foreground="Orange"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Template>
<ControlTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Visible">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
</ListBox>
Dans au-dessus de la zone de liste de contrôle d'affichage des éléments à la verticale. Je veux afficher les éléments dans un contrôle listbox horizonatlly. Donc je suis en utilisant le code suivant.
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
mais quand j'ai mis les deux textblock à l'intérieur de stackpanel il donne une erreur. Pour cela, je suis en utilisant le code suivant
<StackPanel Orientation="Horizontal">
<TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Amount}" Foreground="Orange"></TextBlock>
<TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Currency}" Foreground="Orange"></TextBlock>
</StackPanel>
Je suis en train de le code suivant. Dans le code suivant, j'obtiens l'erreur
<ListBox Margin="0,355,70,205" Name="WeekSummaryListBox" DataContext="{Binding}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Amount}" Foreground="Orange"></TextBlock>
<TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Currency}" Foreground="Orange"></TextBlock>
</StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Template>
<ControlTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Visible">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
</ListBox>
J'obtiens le message d'erreur "Ne peut pas explicitement modifier des enfants de la collection de Panneau utilisé comme ItemsPanel pour ItemsControl.ItemsControl geneartes éléments d'enfant pour Panneau"
Je suis à l'aide de la fonction suivante pour afficher les données dans la zone de liste:
public void WeekSumValue(int TransactionType_ID)
{
UserInterfaceManager UserInterfaceManagerObj = new UserInterfaceManager();
List<UserInterfaceManager.TotalSummary> WeekSummary = new List<UserInterfaceManager.TotalSummary>();
ObservableCollection<AmountCurrency> WeekIncomeSumCollection = new ObservableCollection<AmountCurrency>();
WeekSummary = UserInterfaceManagerObj.LoadWeekSum(SelectedButtonName, TransactionType_ID, selectedDate);
foreach (UserInterfaceManager.TotalSummary vWeekSummary in WeekSummary)
{
WeekIncomeSumCollection.Add(new AmountCurrency(vWeekSummary.Amount, vWeekSummary.Currency));
}
if (WeekIncomeSumCollection.Count != 0 && SummaryCombobox.SelectedIndex == 0)
{
WeekSummaryListBox.ItemsSource = WeekIncomeSumCollection;
}
else if (WeekIncomeSumCollection.Count != 0 && SummaryCombobox.SelectedIndex == 2)
{
MonthSummaryListBox.ItemsSource = WeekIncomeSumCollection;
}
else
{
ObservableCollection<TextBlock> NoRecordsCollection = new ObservableCollection<TextBlock>();
TextBlock NoRecordsTextBlock = new TextBlock();
NoRecordsTextBlock.Text = "No record found";
NoRecordsTextBlock.FontSize = 25;
NoRecordsTextBlock.Foreground = new SolidColorBrush(Colors.Gray);
NoRecordsCollection.Add(NoRecordsTextBlock);
if (SummaryCombobox.SelectedIndex == 0)
WeekSummaryListBox.ItemsSource = NoRecordsCollection;
if (SummaryCombobox.SelectedIndex == 2)
MonthSummaryListBox.ItemsSource = NoRecordsCollection;
}
}
Dans la fonction ci-dessus données sont à venir de façon dynamique. Il peut y avoir deux, trois ou plusieurs enregistrements il peut aussi y avoir aucune trace. Je suis de la liaison de cette dynamique de données pour la textblocks qui sont à l'intérieur de la zone de liste
Je suis à l'aide de la classe suivante utilisé dans le code ci-dessus
public class AmountCurrency
{
public int Amount { get; set; }
public String Currency { get; set; }
public AmountCurrency(int Amount, String Currency)
{
this.Amount = Amount;
this.Currency = Currency;
}
}
Comment dois-je mettre les deux ci-dessus textbock à l'intérieur de la zone de liste qui affiche les éléments horizonatlly ? Pouvez-vous svp me fournir un code ou un lien par lequel je peux résoudre le problème ci-dessus ? Si je fais quelque chose de mal alors s'il vous plaît me guider.
Si j'avais un Dollar la livre, l'euro, quel que soit) pour chaque question, j'ai vu que contient l'énoncé "j'ai une erreur" sans réellement y compris ce que l'erreur a été, je pense que je pourrait prendre sa retraite.
J'ai modifié mes questions & description de l'erreur dans laquelle je suis. Veuillez voir.
Merci pour la mise à jour de votre question, mais je ne peux toujours pas comprendre totalement ce que vous faites. Pouvez-vous s'il vous plaît poster un exemple complet (xaml & CS) pour démontrer ce que vous essayez.
J'ai mis à jour la question pour les détails vous sont nécessaires. Veuillez voir la question
OriginalL'auteur Shailesh Jaiswal | 2011-02-12
Vous devez vous connecter pour publier un commentaire.
Il me semble que vous avez les deux blocs de texte à l'intérieur de la partie incorrecte du modèle.
Ces deux blocs de texte doit être dans le
ListBox.ItemTemplate
, pas dans leListBox.ItemsPanelTemplate
:Si vous voulez comprendre comment cette commande fonctionne, puis démarrez à partir d'un de travail "de base" de contrôle qui affiche les éléments et puis regardez à l'ajout de la
ItemsPanelTemplate
pour que l'échantillon de travail.J'ai mis à jour l'exemple pour le rendre encore plus facile à copier. Il travaille ici...
Vous êtes sauvé la vie. Cela fonctionne à merveille.
OriginalL'auteur Stuart
Remplacer
DataContext="{Binding}"
avecItemsSource="{Binding}"
qui fonctionne pour moi.OriginalL'auteur Erno de Weerd