listview - 在自定义 ViewCell 中显示 Microcharts.Chart
问题描述
我有一个带有自定义 ViewCell 的 ListView。ViewCell 包含 Microcharts.Chart。我使用绑定并尝试找到一种方法来根据某些条件在 ListView 项中显示特定图表(因为现在没有图表)。
这是 XAML 代码的一部分:
<ListView x:Name="blocksList"
HasUnevenRows="True"
ItemsSource="{Binding MainPageBlocks}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid ColumnSpacing="0" RowSpacing="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="15*" />
<ColumnDefinition Width="45*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
... some elements
<forms:ChartView
x:name="LineChart"
Grid.Column="2"
Grid.Row="0"
Grid.RowSpan="3"
BackgroundColor="Transparent"
Chart="{Binding MyChart}">
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
图表条目:
private readonly List<Microcharts.Entry> _entries = new List<Microcharts.Entry>()
{
new Microcharts.Entry(200)
{
Color=SKColor.Parse("#FF0033")
},
new Microcharts.Entry(400)
{
Color=SKColor.Parse("#FF8000")
},
new Microcharts.Entry(300)
{
Color=SKColor.Parse("#FFE600")
},
new Microcharts.Entry(250)
{
Color=SKColor.Parse("#1AB34D")
},
new Microcharts.Entry(650)
{
Color=SKColor.Parse("#1A66FF")
},
new Microcharts.Entry(500)
{
Color=SKColor.Parse("#801AB3")
}
};
至于后面的代码,我尝试了不同的方法:
LineChart.BindingContext = new Microcharts.LineChart { Entries = _entries };
然后我尝试绑定 ChartViews 列表:
public List<Microcharts.Chart> ChartCollection { get; set; }
public Microcharts.Chart LineChart1
{
get
{
return new LineChart()
{
Entries = _entries,
LineMode = LineMode.Straight,
PointMode = PointMode.Circle,
PointSize = 20,
BackgroundColor = SKColors.Transparent,
};
}
}
public Microcharts.Chart LineChart2
{
get
{
return new LineChart()
{
Entries = _entries,
LineMode = LineMode.Straight,
PointMode = PointMode.Circle,
PointSize = 20,
BackgroundColor = SKColors.Transparent,
};
}
}
ChartCollection = new List<Chart>();
ChartCollection.Add(LineChart1);
ChartCollection.Add(LineChart2);
编译时没有错误,chartView 不存在,其余视图可见。我应该怎么做才能在 ViewCell 中显示 ChartView?
提前致谢!
解决方案
推荐阅读
- javascript - 一旦所有字段都正确,隐藏表单
- python - 如何根据争论修改类内的多个状态?
- scripting - Indesign jsx脚本请求指针
- crafter-cms - 使用 Content Inheritance 为所有页面运行控制器代码
- jquery - jQuery 不显眼的验证最小值 - 最大值或零
- aframe - 为什么 a-frame 将“a-html”类添加到我的 html 元素?
- javascript - 通常如何使用 jQuery 或 JavaScript 访问动态添加的元素及其 ID?
- ajax - Nginx 在 Safari 中返回 400 错误
- java - Spring Boot Maven 插件 - 重命名原始 JAR
- python - 比较 numpy 数组中的元素并将相等的元素添加到新数组中