0

我为ListBoxTransactions中的 show 创建集合并绑定为Description但结果我在ListBoxTransactions.ItemsSource中只有名称集合,但没有值。不能使用ListBox.ItemTemplate

XAML

<phone:PivotItem Header="Journal">
      <Grid>
         <ListBox Name="ListBoxTransactions">
            <StackPanel Orientation="Horizontal">
               <TextBlock Text="{Binding Description}" FontSize="35"/>                            
            </StackPanel>
         </ListBox>
      </Grid>
</phone:PivotItem>

C#

public class TransactHelper
    {
        public string Description { get; set; }        
    }


public void ShowTransactions()
        {
            ListBoxTransactions.Items.Clear();
            var transactFulls = _workerDb.GeTransactFull();
            var list = new List<TransactHelper>();
            foreach (var t in transactFulls)
            {                
                list.Add(new TransactHelper { Description = t.Description });
            }

            this.ListBoxTransactions.ItemsSource = list; // dont view collection. only name collection
4

1 回答 1

0

您应该为您的项目实现 ItemContainerStyle。

<ListBox Name="ListBoxTransactions" ItemContainerStyle="{DynamicResource MyItemStyle}">
<ListBox.Resources>
    <Style x:Key="MyItemStyle" TargetType="{x:Type ListBoxItem}">
        <Setter Property="Template">
            <Setter.Value>
                 <ControlTemplate>
                     <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Description}" FontSize="35"/>                            
                      </StackPanel>
                 </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ListBox.Resources>
</ListBox>

并注意:不要使用这对

ListBoxTransactions.Items.Clear();
this.ListBoxTransactions.ItemsSource = list;

你需要

ListBoxTransactions.ItemsSource = null;
this.ListBoxTransactions.ItemsSource = list;

或者将您的集合实现为 ObservableCollection

于 2014-11-11T10:52:08.613 回答