简体   繁体   English

C#Windows Phone ItemsControl为空

[英]C# Windows Phone ItemsControl empty

I'm trying to fill a view with my datas using an ItemsControl . 我正在尝试使用ItemsControl填充数据视图。 I set bindings and values but the view is empty. 我设置了bindingsvalues但视图为空。

This is my xaml: 这是我的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>

and it's filled by the .cs file with this code: 并在.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();
    }

The page is currently displayed without any error, but it is empty. 当前显示该页面,没有任何错误,但是它是空的。 no textblocks and no views are visible. 没有textblocks ,也没有可见的视图。

What I'm missing? 我缺少什么?

Try changing your ObservableCollection to a property, and not a public field. 尝试将ObservableCollection更改为属性,而不是公共字段。

Old: 旧:

public ObservableCollection<LSK_LETTURA> lskLetture;

New ( Edited solution which fixed the problem ): 新增( 解决问题的已编辑解决方案 ):

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

And you must bind on the getLskLetture object 并且必须绑定到getLskLetture对象

Bindings don't work on fields, only on properties. 绑定仅适用于属性,不适用于字段。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM