【问题标题】:ListPicker doesn't show list of objectsListPicker 不显示对象列表
【发布时间】:2014-04-18 16:04:02
【问题描述】:

我创建了公共类“cBank”。这个类有

public string Name { get; set; }
public double first_session_in { get; set; }
public double second_session_in { get; set; }
public double third_session_in { get; set; }
public double first_session_out { get; set; }
public double second_session_out { get; set; }
public double third_session_out { get; set; }

我在 ManiPage 构造函数中创建了 obj 列表

List<cBank> oListBanks = new List<cBank>();
oListBanks.Add(new cBank {Name="Alior Bank", first_session_in = ...});
oListBanks.Add(new cBank {Name="Bank BPH",first_session_in=...});
this.ListPicker.ItemsSource = oListBanks;

我的 xaml 代码中有:

<phone:PhoneApplicationPage.Resources>
  <DataTemplate x:Name="lpkBank">
    <TextBlock Text="{Binding Name}" />
   </DataTemplate>
</phone:PhoneApplicationPage.Resources>

我只想显示(银行的)名称。其余xml代码:

<toolkit:ListPicker Header="Bank:" FullModeItemTemplate="{Binding lpkFullBank}"
                    ItemTemplate="{Binding lpkBank}" x:Name="ListPicker" 
                    Margin="12,15,12,0" Height="110" VerticalAlignment="Top" />

现在它只在列表选择器中显示类的名称。我该怎么办?

【问题讨论】:

  • 是的,您的 Xaml 代码中的 ListPicker 在哪里?
  • 你想显示名字,first_session_in和listpicker中的所有字段
  • 我只想显示(银行的)名称。其余xml代码:&lt;toolkit:ListPicker Header="Bank:" FullModeItemTemplate="{Binding lpkFullBank}" ItemTemplate="{Binding lpkBank}" x:Name="ListPicker" Margin="12,15,12,0" Height="110" VerticalAlignment="Top" /&gt;

标签: c# xaml windows-phone-7


【解决方案1】:

如果你想从你的ListPicker 显示你也可以像这样使用 在构造函数中:

List<cBank> oListBanks = new List<cBank>();
oListBanks.Add(new cBank {Name="Alior Bank", first_session_in = ...
oListBanks.Add(new cBank {Name="Bank BPH",first_session_in=...

在您的 XAML 代码中:

 <phone:PhoneApplicationPage.Resources>
    <toolkit:ListPicker x:Key="ListPicker" ItemsSource="{Binding oListBanks , ElementName=this}" SelectionMode="Single">
     <toolkit:ListPicker.ItemTemplate>
      <DataTemplate>
       <TextBlock Text="{Binding Name}" />
      </DataTemplate>
     </toolkit:ListPicker.ItemTemplate>
    </toolkit:ListPicker>
 </phone:PhoneApplicationPage.Resources>

【讨论】:

  • 我试图粘贴它,但它返回一个错误 &lt;ListPicker&gt; 我缺少程序集。
  • 我已经更新了 ListPicker 关于您的更新。我添加了toolkit
  • 它返回一个缺少密钥的错误。所以我编辑了&lt;toolkit:ListPicker x:Key="ListPicker" ItemsSource="{Binding oListBanks , ElementName=this}"&gt; 添加了结束标签。但是我仍然有错误在类型'ListPicker'中找不到可附加属性'ItemTemplate' &lt;toolkit:ListPicker x:Key="ListPicker" ItemsSource="{Binding oListBanks , ElementName=this}"&gt;&lt;ListPicker.ItemTemplate&gt; &lt;DataTemplate&gt;&lt;TextBlock Text="{Binding Name}" /&gt; &lt;/DataTemplate&gt;&lt;/ListPicker.ItemTemplate&gt;&lt;/toolkit:ListPicker&gt;
  • 我通过添加toolkit 更正错误。它现在编译。但是当我点击 listpicker 什么都没有发生
  • 它假设打开一个完整的对象名称列表,当我选择一个名称时,它应该留在列表选择器中。稍后我会尝试获取之前选择的对象的信息
【解决方案2】:

我解决了。我看到了我的错误。 Height="110" 这是列表没有下拉的原因之一。 类是正确的。

构造函数应该如下所示:

List<cBank> oListBanks = new List<cBank>();
oListBanks.Add(new cBank {Name="Alior Bank", first_session_in = ...});
oListBanks.Add(new cBank {Name="Bank BPH",first_session_in=...});
...
this.ListPicker.ItemsSource = oListBanks;

XAML 代码应该是:

<toolkit:ListPicker x:Name="ListPicker" Header="Bank:" > 
              <toolkit:ListPicker.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Name}" FontSize="30" HorizontalAlignment="Center"/>
                    </StackPanel>
                </DataTemplate>
            </toolkit:ListPicker.ItemTemplate>
            <toolkit:ListPicker.FullModeItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name}" Width="150"/>
                    </StackPanel>
                </DataTemplate>
            </toolkit:ListPicker.FullModeItemTemplate>
        </toolkit:ListPicker>

现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多