C# Windows Phone ItemsControl 为空

C# Windows Phone ItemsControl empty

我正在尝试使用 ItemsControl 用我的数据填充视图。我设置了 bindingsvalues 但视图是空的。

这是我的xaml:

        <phone:PanoramaItem Header="lettura" 
                                    x:Name="nuovaLettura"
                                    Tag="nuovaLettura">
            <phone:PanoramaItem.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding}" 
                             FontSize="56" Margin="0, 10"/>
                </DataTemplate>
            </phone:PanoramaItem.HeaderTemplate>
            <ItemsControl ItemsSource="{Binding lskLetture}" x:Name="lettureControl">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border BorderThickness="1"
                             BorderBrush="Brown" 
                                Background="Transparent">
                            <StackPanel Orientation="Vertical">
                                <TextBlock
                                    Margin="12, 0, 0, -5"
                                    Text="Nome lettura"
                                    FontSize="18" />
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>
                                    <Button IsEnabled="False" 
                                         Grid.Column="0" 
                                         Grid.Row="0"
                                         Content="{Binding tipoLettura}"/>
                                    <TextBlock Text="*" 
                                         Foreground="Red"
                                         Grid.Column="1"
                                         Grid.Row="0"
                                         Visibility="{Binding visibilitàObbligatorio}"/>
                                </Grid>

                                <TextBlock
                                    Margin="12, 0, 0, -5"
                                    Text="Data lettura"
                                    FontSize="18" />
                                <toolkit:DatePicker IsEnabled="False" 
                                      Value="{Binding dataLettura}"/>

                                <TextBlock
                                    Margin="12, 0, 0, -5"
                                    Text="Esito lettura"
                                    FontSize="18"
                                    />
                                <toolkit:ListPicker IsEnabled="False"
                                            ItemsSource="{Binding scelte}"
                                            Visibility="{Binding visibilitàScelte}"/>
                                <TextBox FontSize="18" 
                                         IsEnabled="False"
                                         x:Name="valoreLettura"
                                         Text="{Binding valoreLettura}" 
                                         Visibility="{Binding visibilitàNonScelte}"/>

                                <TextBlock
                                    Margin="12, 0, 0, -5"
                                    Text="Note"
                                    FontSize="18" />
                                <TextBox FontSize="18" 
                                    MinHeight="50" 
                                    x:Name="noteLettura" 
                                    Text="{Binding note}"/>

                            </StackPanel>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </phone:PanoramaItem>

它由 .cs 文件填充,代码如下:

    private List<LETTURA> lettureOriginali;
    public ObservableCollection<LSK_LETTURA> lskLetture;

    public class LSK_LETTURA
    {
        public Guid id { get; set; }
        public Guid idInt { get; set; }
        public Guid idTipologiaLettura { get; set; }
        public string tipologiaLettura{ get; set; }
        public DateTime? dataLettura { get; set; }
        public List<string> scelte { get; set; }
        public string valoreLettura { get; set; }
        public string note { get; set; }
        public string visibilitàObbligatorio { get; set; }
        public string visibilitàScelte { get; set; }
        public string visibilitàNonScelte { get; set; }

    }

    private void CreaOggettoLettura()
    {
        lettureOriginali = new LETTURA().SelectByInt(intervento.ID);
        lskLetture = new ObservableCollection<LSK_LETTURA>();

        foreach (LETTURA l in lettureOriginali)
        {
            var tipologiaLettura = new TIPOLOGIA_LETTURA().SelectById(l.ID_TIPO_LETTURA);
            lskLetture.Add(new LSK_LETTURA()
            {
                id = l.ID,
                idInt = l.ID_INT,
                idTipologiaLettura = tipologiaLettura.ID,
                tipologiaLettura = tipologiaLettura.NOME,
                dataLettura = l.DATA_LETTURA ?? DateTime.Today,
                note = l.NOTE,
                scelte = tipologiaLettura.UNITA_MISURA == "Lista di scelte" ? new List<string>() : tipologiaLettura.POSSIBILI_VALORI.Split(',').ToList(),
                valoreLettura = l.VALORE_LETTURA,
                visibilitàObbligatorio = l.OBBLIGATORIO ? "Visible" : "Collapsed",
                visibilitàScelte = tipologiaLettura.UNITA_MISURA == "Lista di scelte" ? "Visible" : "Collapsed",
                visibilitàNonScelte = tipologiaLettura.UNITA_MISURA == "Lista di scelte" ? "Collapsed" : "Visible"
            });
        }
        lettureControl.UpdateLayout();
    }

当前页面显示没有任何错误,但是页面是空的。没有 textblocks 并且没有视图可见。

我错过了什么?

尝试将您的 ObservableCollection 更改为 属性,而不是 public 字段。

旧:

public ObservableCollection<LSK_LETTURA> lskLetture;

新(解决问题的编辑解决方案):

public ObservableCollection<LSK_LETTURA> lskLetture;
public ObservableCollection<LSK_LETTURA> getLskLetture  
{
    get
    {
        return lskLetture;
    }
    set
    {
        lskLetture = value;
    }
}

并且您必须绑定在 getLskLetture 对象上

绑定不适用于字段,仅适用于属性。