Я пытаюсь заполнить представление своими данными, используя ItemsControl
. Я установил bindings
и values
, но вид пуст.C# Windows Phone ItemsControl empty
Это моя 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();
}
страница отображается в данный момент без каких-либо ошибок, но это пустой. no textblocks
и вид не отображается.
Что мне не хватает?
Мне нужно было добавить оба наблюдаемых коллекций, а свойство имеет настраиваемый набор для возврата в поле. но это указывало на решение! спасибо: D –
Нет проблем, всегда рад помочь хотя бы немного:) –
так же, как sidenote: всегда делайте ваши поля частными. Таким образом, ваш lskLetture-Colleciton должен быть конфиденциальным, было бы бессмысленно делать поле и собственность публичной! –