0
内部のバインディングチャートだから私は私のComboBox
内Chart
をバインドしたい:コンボボックス
XAML:
<ComboBox x:Name="cbAdapters" SelectedIndex="0" Margin="30">
<ComboBox.ItemTemplate>
<DataTemplate>
<telerik:RadCartesianChart x:Name="chartTemplate"
Width="300" Height="200">
<telerik:RadCartesianChart.VerticalAxis>
<telerik:LinearAxis />
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:CategoricalAxis/>
</telerik:RadCartesianChart.HorizontalAxis>
<telerik:LineSeries ValueBinding="Rate" CategoryBinding="Category" ItemsSource="{Binding ChartPlotInfos}" />
</telerik:RadCartesianChart>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Code behind
:
public MainWindow()
{
InitializeComponent();
var r = new Random();
var comboBoxSource = new ObservableCollection<MachineNetworkAdapter>();
for (int i = 0; i < 3; i++)
{
var adapter = new MachineNetworkAdapter()
{
Name = "Adapter " + i,
IpAddress = r.Next(0, 255) + "." + r.Next(0, 255) + "." + r.Next(0, 255) + "." + r.Next(0, 255),
ChartPlotInfos = new ObservableCollection<ChartPlotInfo>(),
};
for (int k = 0; k < 10; k++)
{
adapter.ChartPlotInfos.Add(new ChartPlotInfo() { Category = "Category " + k, Rate = r.Next(100, 300) });
}
comboBoxSource.Add(adapter);
}
cbAdapters.ItemsSource = comboBoxSource;
}
}
モデル:
public class MachineNetworkAdapter
{
public string Name { get; set; }
public string IpAddress { get; set; }
public ObservableCollection<ChartPlotInfo> ChartPlotInfos { get; set; }
}
public class ChartPlotInfo
{
public double Rate { get; set; }
public string Category { get; set; }
}
これは私の内部ComboBox
私だけが見ることができますが、私のMachineNetworkAdapter
Name
とIP Address
が表示されないことを除いてこれはうまく動作しますので、私はChart
を見ることができます。
'DataTemplate'では、' Name'と 'IpAddress'のバインディングを設定していません。 – Iron