C# Windows Phone ItemsControl 为空
C# Windows Phone ItemsControl empty
我正在尝试使用 ItemsControl
用我的数据填充视图。我设置了 bindings
和 values
但视图是空的。
这是我的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 对象上
绑定不适用于字段,仅适用于属性。
我正在尝试使用 ItemsControl
用我的数据填充视图。我设置了 bindings
和 values
但视图是空的。
这是我的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 对象上
绑定不适用于字段,仅适用于属性。