[英]Binding data to XAML while runtime
我用一个网格和一些矩形构建了一个图表,就像这篇文章: 在WPF C#设计问题中绘制图表
现在,我将此图表保存到XAML文件中,以便稍后由另一个程序填充。
在此图表中,我需要绑定三个值:1.标签2. MaxHeight-高度(每个条形)3.高度
我的问题是,我不知道如何正确绑定它才能在另一个应用程序中使用它。
另一个应用程序可以给我一个带有值和标签的列表或数组,但是我不知道如何将未知值绑定到矩形。
在下面的代码中,我绑定了“ ChartLabel”,但不仅需要所有图表标签,还需要所有图表标签。 现在,当我创建图表时,我不会再拥有多少柱。
<Grid ShowGridLines="True" Background="#FFF5F5DC" Width="Auto" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Rectangle Fill="#FF0000FF" Grid.Column="{Binding Path=Test6_Val, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Text="{Binding Path=ChartLabel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" BorderBrush="#00FFFFFF" Background="#00FFFFFF" HorizontalAlignment="Center" Grid.Column="5" Grid.Row="10" />
<Rectangle Fill="#FF0000FF" Grid.Column="{Binding Path=Test7_Val, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Text="{Binding Path=ChartLabel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" BorderBrush="#00FFFFFF" Background="#00FFFFFF" HorizontalAlignment="Center" Grid.Column="6" Grid.Row="10" />
<Rectangle Fill="#FF0000FF" Grid.Column="{Binding Path=Test8_Val, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Text="{Binding Path=ChartLabel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" BorderBrush="#00FFFFFF" Background="#00FFFFFF" HorizontalAlignment="Center" Grid.Column="7" Grid.Row="10" />
<Rectangle Fill="#FF0000FF" Grid.Column="{Binding Path=Test9_Val, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Text="{Binding Path=ChartLabel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" BorderBrush="#00FFFFFF" Background="#00FFFFFF" HorizontalAlignment="Center" Grid.Column="8" Grid.Row="10" />
<Rectangle Fill="#FF0000FF" Grid.Column="{Binding Path=Test10_Val, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Text="{Binding Path=ChartLabel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" BorderBrush="#00FFFFFF" Background="#00FFFFFF" HorizontalAlignment="Center" Grid.Column="9" Grid.Row="10" />
</Grid>
我不确定我是否遵循您对哪个部分有问题的描述。 您将有一个列表。 您要使用该字符串作为标签,并使用数字作为高度。 如果进行迭代,则可以找到最大值,从而计算某种比例因子,因此,最大值的一半最终将占图表高度的一半。 我要做这样的系列的方式是使用itemscontrol。 将可观察的集合绑定到itemssource。 一个项目控件有一个堆栈面板,其内容进入其中。使方向水平,并定义一个项目模板。 那将有一个用于标签的文本块(可以旋转)和一个矩形,其高度绑定到您的缩放值。
我写的地形可视化器大致是这样工作的。 没有标签-因此,这是给您的想法,而不是剪切和粘贴。
<ListBox ItemsSource="{Binding TerrainPointList}"
..
>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsItemsHost="True"
Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
...
列表框包含滚动条和selecteditem。 我在我的产品中使用了selecteditem,这对您可能有用也可能没有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.