我有一個數據庫女巫包含不同的軌道值。Dynamic Enabled =在C#圖表
例如:
音軌1:
Sensor 1
Sensor 2
Sensor 3
Sensor 4
Sensor 5
Sensor 6
Sensor 7
Sensor 8
音軌2:
Sensor 1
Sensor 2
Sensor 3
Sensor 4
Sensor 5
Sensor 6
Sensor 7
Sensor 8
Sensor 9
Sensor 10
Sensor 11
Sensor 12
正如你可以看到軌道2具有12個傳感器(巫是米斧頭!)。
現在我想要在圖表中顯示傳感器的值。女巫正在工作。
但是現在硬編碼有12個項目。所以當有8個傳感器時,圖例仍然會顯示12.
現在我所做的是添加Enabled = False,所以你不會看到它。 (見下面的例子)
<chart:DataSeries x:Name="dsSensor1" Enabled="False" RenderAs="Line" LineThickness="3" LegendText="1" XValueType="DateTime" XValueFormatString="dd-MM HH:mm" YValueFormatString="#0.##'V'" MarkerEnabled="False">
<chart:DataSeries.DataPoints>
<chart:DataPoint XValue="2001-01-01" YValue="3.2" Enabled="False"/>
</chart:DataSeries.DataPoints>
</chart:DataSeries>
<chart:DataSeries x:Name="dsSensor2" Enabled="False" RenderAs="Line" LineThickness="3" LegendText="2" XValueType="DateTime" XValueFormatString="dd-MM HH:mm" YValueFormatString="#0.##'V'" MarkerEnabled="False">
<chart:DataSeries.DataPoints>
<chart:DataPoint XValue="2001-01-01" YValue="3.2" Enabled="False"/>
</chart:DataSeries.DataPoints>
</chart:DataSeries>
現在你不會看到圖例。
現在我的代碼我犯了一個新的循環是這樣的:
foreach (DCHistory item in loadOperation.Entities.OrderByDescending(t => t.SensorNumber).Take(1))
這將需要一個特定的軌道的最高數量。例如,此查詢將導致。
我現在做什麼,然後=
foreach (DCHistory item in loadOperation.Entities.OrderByDescending(t => t.SensorNumber).Take(1))
{
DataSeries series1 = chart.Series.First(s => s.Name == string.Format("dsSensor1"));
DataSeries series2 = chart.Series.First(s => s.Name == string.Format("dsSensor2"));
DataSeries series3 = chart.Series.First(s => s.Name == string.Format("dsSensor3"));
DataSeries series4 = chart.Series.First(s => s.Name == string.Format("dsSensor4"));
DataSeries series5 = chart.Series.First(s => s.Name == string.Format("dsSensor5"));
DataSeries series6 = chart.Series.First(s => s.Name == string.Format("dsSensor6"));
DataSeries series7 = chart.Series.First(s => s.Name == string.Format("dsSensor7"));
DataSeries series8 = chart.Series.First(s => s.Name == string.Format("dsSensor8"));
DataSeries series9 = chart.Series.First(s => s.Name == string.Format("dsSensor9"));
DataSeries series10 = chart.Series.First(s => s.Name == string.Format("dsSensor10"));
DataSeries series11 = chart.Series.First(s => s.Name == string.Format("dsSensor11"));
DataSeries series12 = chart.Series.First(s => s.Name == string.Format("dsSensor12"));
int sensor = item.SensorNumber;
if (sensor == 8)
{
series1.Enabled = true;
series2.Enabled = true;
series3.Enabled = true;
series4.Enabled = true;
series5.Enabled = true;
series6.Enabled = true;
series7.Enabled = true;
series8.Enabled = true;
}
}
這段代碼,如果結果爲8。如果是8能夠在傳說中的前8項罪名。
現在,這是行得通的。不過,我也需要爲12個傳感器,或6個。 這將導致很多代碼,並仍然是硬編碼!
我的問題:
它是更多鈔票,使這個在for循環?
我已經嘗試過,但就是unsuccesfull ...
我想什麼:
foreach (DCHistory item in loadOperation.Entities.OrderByDescending(t => t.SensorNumber).Take(1))
{
int sensor = item.SensorNumber;
int sensor2 = sensor + 1; //set +1 because if number = 0, it gives error.
if (sensor >= 1)
{
for (int number = 1; number < sensor2; number++)
{
DataSeries series = chart.Series.First(s => s.Name == string.Format("dsSensor{0}", number));
series.Enabled = true;
}
}
}
這段代碼的結果是,圖例顯示我的12個傳感器,即使有8 ..
當我把這個我在循環中(我拿1結果的那個)。我得到了和我最後一個例子完全相同的結果。這就是我得到12個傳感器,而我只有8 – Mitch
@Mitch試用這個最新版本(我仍然在寬限期),現在它只檢索該系列的8個實例 –
我把它放在這個循環內: foreach (DCHistory item in loadOperation.Entities.OrderByDescending(t => t.SensorNumber).Take(1)) 但是仍然總是返回12:/ – Mitch