簡體   English   中英

在運行時將數據綁定到XAML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM