I am struggling with
XMLDataProvider resource and
binding Usercontrols in WPF. I have an app with a dynamic amount of the same UserControl.This User control is called "
Thruster_Control.xaml" and is a composition of 3 gauge controls. I want to bind the usercontrol values from an Xml file. My XML looks like this:
<NMEA_MESSAGE>
<TRC id="1">
<rpm_value>10</rpm_value>
<pitch_value>10</pitch_value>
<rudder_value>10</rudder_value>
</TRC>
<TRC id="2">
<rpm_value>58</rpm_value>
<pitch_value>0.6</pitch_value>
<rudder_value>19</rudder_value>
</TRC>
<rpm_value>35</rpm_value>
<pitch_value>2.58</pitch_value>
<rudder_value>30</rudder_value>
</TRC>
I declare it in the app resources
<XmlDataProvider x:Key="NMEA Source" Source="E:\CSharpProjects\Src\---s_Test\----\Input Data\Data\NMEA_Data_List.xml" XPath="NMEA_MESSAGE/TRC" />
The 3 gauges in each Usercontrol looks like this one:
<gauge:CircularGaugeControl x:Name="gauge_pitch"
Radius="105"
ScaleRadius="60"
ScaleStartAngle="140"
ScaleSweepAngle="270"
PointerLength="55"
PointerCapRadius="15"
MinValue="0"
MaxValue="1"
MajorDivisionsCount="10"
MinorDivisionsCount="5"
OptimalRangeEndValue="0.8"
OptimalRangeStartValue="0.5"
CurrentValue="{Binding ElementName=pitch_value}"
RangeIndicatorThickness="9"
RangeIndicatorRadius="45"
RangeIndicatorLightRadius="8"
RangeIndicatorLightOffset="60"
ScaleLabelRadius="75"
ScaleLabelSize="40,20"
ScaleLabelFontSize="12"
ScaleLabelForeground="SlateGray"
MajorTickSize="10,3"
MinorTickSize="3,1"
MajorTickColor="White"
MinorTickColor="SlateGray"
ImageOffset="-50"
GaugeBackgroundColor="Black"
PointerThickness ="5"
DialTextOffset="40"
DialText="Pitch"
DialTextColor="SlateGray"
/>
If for example , I add to the grid of my app 2 Usercontrols ( which means 6 gauges) dynamically, I want to load the values from 2 nodes TRC.
I don't know if this is possible or should be an XML per User control . I checked many examples but they are only with one usercontrol and is a simple LISTBOX. I think it must be possible to bind multiple UserConrtols of the same type with one source.
Could someone suggest me a better performance ? or give me some guidelines about this?