我有一个适用于 Windows 8 的应用程序,它需要获取一个 Json 字符串并将其反序列化为 DATACONTRACTS,它将在具有最大高度的列表框中显示我希望的信息,如果大于最大高度,它将滚动。
我拥有它的问题不是无法做到,而是不知道如何去做。
到目前为止,我可以反序列化 Json,并且可以指定我希望每个项目进入 UI 的位置,但我想要做的基本上是数组中的每个项目,我希望它创建一个新的 Stackpanel,使用 Textblocks 格式化来自 Json 的信息。不幸的是,我不知道该怎么做,而且我真的不知道我在寻找什么来获得有关如何做的教程
这是我的代码,它使用辅助类从 json 中获取项目并将它们放入 TextBlocks 的文本中。
var _FilterSaleList = new FilterSalesList();
var _Sales = await _FilterSaleList.FindSalesbyFilters();
string _SaleName = _Sales.sales[0].name.ToString();
string _SaleDescription = _Sales.sales[0].description.ToString();
string _SaleName1 = _Sales.sales[1].name.ToString();
string _SaleDescription1 = _Sales.sales[1].description.ToString();
int _TotalResults = _Sales.sales.Length;
SaleTitle.Text = _SaleName;
SaleDescription.Text = _SaleDescription;
SaleTitle1.Text = _SaleName1;
SaleDescription1.Text = _SaleDescription1;
这是列表框的 XAML 代码,其中已有 2 个堆栈面板。
<ListBox Grid.Row="1">
<StackPanel Margin="0,0,0,5">
<TextBlock x:Name="SaleTitle" Text="" HorizontalAlignment="Center" Margin="0,0,0,5"/>
<TextBlock x:Name="SaleDescription" Text="" HorizontalAlignment="Center" MaxHeight="40" Margin="0,0,0,5" TextWrapping="Wrap"/>
</StackPanel>
<StackPanel Margin="0,0,0,5">
<TextBlock x:Name="SaleTitle1" Text="" HorizontalAlignment="Center" Margin="0,0,0,5"/>
<TextBlock x:Name="SaleDescription1" Text="" HorizontalAlignment="Center" MaxHeight="40" Margin="0,0,0,5" TextWrapping="Wrap"/>
</StackPanel>
</ListBox>
下面是我希望它看起来如何的图像。即使一切都像我说的那样以这种方式工作,我希望这样,json 中的每个项目都会创建一个新的堆栈面板并显示图像中的信息。我不知道这样做的时候它叫什么,所以即使是一个关于在哪里看的简单提示也会很棒!