윈도우 폰 7 응용 프로그램을 개발 중입니다. 창문 7 응용 프로그램을 처음 사용합니다. 내 응용 프로그램에서 다음 목록 상자 컨트롤이 있습니다목록 상자 컨트롤에서 항목을 가로로 표시하는 방법은 무엇입니까?
<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>
위의 목록 상자 컨트롤 항목은 세로로 표시됩니다. horizonatlly 컨트롤을 목록 상자에 항목을 표시 할 싶어요. 그래서 다음 코드를 사용하고 있습니다.
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
하지만 두 개의 텍스트 블록을 스택 패널에 넣으면 오류가 발생합니다. 이를 위해 다음 코드를 사용하고 있습니다.
<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>
다음 코드를 사용하려고합니다. 다음 코드에서 나는 오류
<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>
나는 다음을 사용하고
"을 명시 적으로 패널의 자식 컬렉션이 패널에 대한 ItemsControl.ItemsControl geneartes 자식 요소 ItemsPanel로 사용 수정할 수 없습니다"라는 오류를 얻고 무엇입니까 함수를 사용하여 ListBox에 데이터를 표시합니다.
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;
}
}
위의 함수에서 데이터가 동적으로 나타납니다. 2 개, 3 개 또는 그 이상의 레코드가있을 수 있으며 레코드가 없을 수도 있습니다. 난 내가 표시 목록 상자 내부에 위의 두 textbock을 넣어하는 방법을 위의 코드
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;
}
}
에 사용되는 다음과 같은 클래스를 사용하고
목록 상자 안에있는 textblocks이 동적 데이터 바인딩하고 항목 horizonatlly? 위의 문제를 해결할 수있는 코드 나 링크를 제공해 주시겠습니까? 내가 틀린 일을하고 있다면 나를 안내 해주십시오.
어떤 오류가 발생하고 있습니까? –
내가 본 모든 질문에 대해 달러 (파운드, 유로 등)가있는 경우 오류가 무엇인지 실제로 포함하지 않고 "오류가 발생했습니다"라는 문구가 포함되어 있으면 은퇴 할 수 있습니다. – AnthonyWJones
나는 내 질문을 수정하고 내가 얻고있는 오류에 대해 설명했다. 참조하십시오. –