or
Regards
Pierre-Andre
private
void
PopulateDiagram()
{
processingDiagram.Clear();
RadDiagramShape ppEnd =
new
RadDiagramShape()
{
Content =
"End"
,
Width = 100,
Height = 50,
Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.CloudShape)
};
processingDiagram.AddShape(ppEnd);
RadDiagramShape ppStart =
new
RadDiagramShape()
{
ContentTemplate = Resources[
"PreprocessingStartTemplate"
]
as
DataTemplate,
Width = 100,
Height = 50,
Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.CloudShape)
};
processingDiagram.AddShape(ppStart);
foreach
(PreprocessorSegment segment
in
SelectedEngine.PreprocessorSegments)
{
RadDiagramShape segmentStart =
new
RadDiagramShape()
{
Content = segment.Node,
Width = 100,
Height = 50,
Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.EllipseShape)
};
processingDiagram.AddShape(segmentStart);
RadDiagramConnection connection =
new
RadDiagramConnection()
{
Source = ppStart,
SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom,
Target = segmentStart,
TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top,
};
processingDiagram.AddConnection(connection);
List<
string
> unusedOutputs =
new
List<
string
>();
Dictionary<
string
, RadDiagramShape> outputShapes =
new
Dictionary<
string
, RadDiagramShape>();
Dictionary<PreprocessorAlgorithmInstance, RadDiagramShape> algShapes =
new
Dictionary<PreprocessorAlgorithmInstance, RadDiagramShape>();
foreach
(PreprocessorAlgorithmInstance alg
in
segment.Algorithms)
{
RadDiagramShape algShape =
new
RadDiagramShape()
{
Content = alg,
ContentTemplate = Resources[
"PreprocessingAlgorithmInstanceTemplate"
]
as
DataTemplate,
Width = 100,
Height = 50,
Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.RectangleShape)
};
unusedOutputs.Add(alg.Output);
outputShapes[alg.Output] = algShape;
algShapes[alg] = algShape;
processingDiagram.AddShape(algShape);
}
// Connections from Inputs to Outputs.
foreach
(PreprocessorAlgorithmInstance alg
in
segment.Algorithms)
{
foreach
(
string
input
in
alg.Inputs)
{
if
(outputShapes.ContainsKey(input))
{
RadDiagramConnection cn =
new
RadDiagramConnection()
{
Content = input,
Source = outputShapes[input],
SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom,
Target = algShapes[alg],
TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top,
TargetCapType = Telerik.Windows.Diagrams.Core.CapType.Arrow1Filled
};
processingDiagram.AddConnection(cn);
unusedOutputs.Remove(input);
}
else
{
RadDiagramConnection cn =
new
RadDiagramConnection()
{
Content = input,
Source = segmentStart,
SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom,
Target = algShapes[alg],
TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top,
TargetCapType = Telerik.Windows.Diagrams.Core.CapType.Arrow1Filled
};
processingDiagram.AddConnection(cn);
}
}
}
foreach
(
string
output
in
unusedOutputs)
{
RadDiagramConnection cn =
new
RadDiagramConnection()
{
Content = output,
Source = outputShapes[output],
SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom,
Target = ppEnd,
TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top,
TargetCapType = Telerik.Windows.Diagrams.Core.CapType.Arrow1Filled
};
processingDiagram.AddConnection(cn);
}
}
processingDiagram.Layout();
}
//This is to hide two columns "Address" and "LastName"
private
void
rdbHide_Checked(
object
sender, RoutedEventArgs e)
{
if
((
bool
)rdbHide.IsChecked)
{
dgQueue.Columns[
"Address"
].IsVisible =
false
;
dgQueue.Columns[
"LastName"
].IsVisible =
false
;
}
dgQueue.Rebind();
}
private
void
rdbShow_Checked(
object
sender, RoutedEventArgs e)
{
if
((
bool
)rdbShow.IsChecked)
dgQueue.Columns[
"Address"
].IsVisible =
true
;
dgQueue.Rebind();
}
private
void
dgQueue_RowLoaded(
object
sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
{
if
(e.DataElement !=
null
)
{
GridViewRow GrdRow = e.Row
as
GridViewRow;
Emp objEV = e.Row.DataContext
as
Emp;
if
(GrdRow !=
null
)
{
for
(
int
index = 0; index < GrdRow.Cells.Count; index++)
{
//Here i am not able to get index of "Address" column, on the bases of Address i want to show and hide Image control inside "PatInfo" column
if
(GrdRow.Cells[index].Column.UniqueName.Equals(
"PatInfo"
))
{
Image img =
null
;
img = (Image)GrdRow.Cells[index].Content;
if
(!
string
.IsNullOrEmpty(objEV.Address))
{
if
(objEV.Address ==
"Noida"
)
{
if
(img !=
null
) img.Visibility = System.Windows.Visibility.Collapsed;
}
else
{
if
(img !=
null
) img.Visibility = System.Windows.Visibility.Visible;
}
}
}
}
}
}
}
<
telerik:RadGridView
Name
=
"dgQueue"
Grid.Row
=
"0"
AutoGenerateColumns
=
"False"
RowLoaded
=
"dgQueue_RowLoaded"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
Width
=
"*"
UniqueName
=
"FirstName"
DataMemberBinding
=
"{Binding FirstName}"
Header
=
"FirstName"
>
</
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
Width
=
"*"
UniqueName
=
"LastName"
DataMemberBinding
=
"{Binding LastName}"
Header
=
"LastName"
>
</
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
Width
=
"*"
UniqueName
=
"Address"
DataMemberBinding
=
"{Binding Address}"
Header
=
"Address"
/>
<
telerik:GridViewDataColumn
Width
=
"*"
UniqueName
=
"Mobile"
DataMemberBinding
=
"{Binding Mobile}"
Header
=
"Mobile"
/>
<
telerik:GridViewDataColumn
Name
=
"PatInfo"
UniqueName
=
"PatInfo"
Width
=
"90"
Header
=
"Pat Info"
>
<
telerik:GridViewColumn.CellTemplate
>
<
DataTemplate
>
<
Image
Name
=
"imgDemo"
Width
=
"16"
Height
=
"16"
ToolTip
=
"Patient Information"
Source
=
"/WpfDemo;component/Images/magnify3.png"
/>
</
DataTemplate
>
</
telerik:GridViewColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>