簡體   English   中英

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 ObservableCollection<LSK_LETTURA> lskLetture;

新增( 解決問題的已編輯解決方案 ):

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

並且必須綁定到getLskLetture對象

綁定僅適用於屬性,不適用於字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM