Which Telerik WinForm controls would you recommend I use to create the status board described below?
I want to show a scrum-like status board with four columns (e.g. Pending, In Progress, In Review, and Done). I'd like to show zero or more "cards" stacked vertically down from the top of each column. I'm imagining each card to be a user control with an aggregation of 4 or 5 rad controls, perhaps even resembling a small index card.
I'd like to bind the status board to a SQL view which contains a record for each "card" and a field on each record indicating the correct column for which that item belongs.
I am new to the Telerik controls, and trying to decide which of the many Telerik controls to use to build the status board. One idea is to have four single column grid controls side-by-side, each bound to the SQL View and filtered on the particular column. I used this approach in an MS Access prototype. Grid controls might be overkill, though. Perhaps side-by-side ListView controls might work if those allow embedded usercontrols. Or, you might have a much better idea, or point me to other posts that I missed.
Note that the entire status board will reside in a resizable panel in an Outlook style application. Your "OutlookTypeApp.sln" posted elsewhere (http://www.telerik.com/community/forums/winforms/general-discussions/which-controls-should-i-use-for-outlook-type-application.aspx) was very helpful!
Thank you for any help you can give in pointing me in the right direction.
public
class
RadCustomVariationViewVisualItem : IconListViewVisualItem
{
private
LightVisualElement _imageElement;
private
LightVisualElement _nameElement;
private
LightVisualElement _descriptionElement;
private
RadWaitingBarElement _waitingBarElement;
private
StackLayoutPanel _overallLayout;
private
StackLayoutPanel _textLayout;
protected
override
void
CreateChildElements()
{
base
.CreateChildElements();
_overallLayout =
new
StackLayoutPanel {Orientation = Orientation.Horizontal};
_imageElement =
new
LightVisualElement
{
DrawText =
false
,
ImageLayout = ImageLayout.Center,
StretchVertically =
false
,
Margin =
new
Padding(10, 22, 10, 5),
NotifyParentOnMouseInput =
true
,
ShouldHandleMouseInput =
false
};
_overallLayout.Children.Add(_imageElement);
_textLayout =
new
StackLayoutPanel { Orientation = Orientation.Vertical };
_overallLayout.Children.Add(_textLayout);
_nameElement =
new
LightVisualElement
{
TextAlignment = ContentAlignment.MiddleLeft,
Margin =
new
Padding(10, 10, 10, 5),
Font =
new
Font(
"Segoe UI"
, 12, FontStyle.Bold, GraphicsUnit.Point),
NotifyParentOnMouseInput =
true
,
ShouldHandleMouseInput =
false
};
_textLayout.Children.Add(_nameElement);
_descriptionElement =
new
LightVisualElement
{
TextAlignment = ContentAlignment.MiddleLeft,
Margin =
new
Padding(10, 5, 10, 5),
Font =
new
Font(
"Segoe UI"
, 12, FontStyle.Bold, GraphicsUnit.Point),
NotifyParentOnMouseInput =
true
,
ShouldHandleMouseInput =
false
};
_textLayout.Children.Add(_descriptionElement);
_waitingBarElement=
new
RadWaitingBarElement();
_waitingBarElement.WaitingBarOrientation = Orientation.Horizontal;
_waitingBarElement.WaitingDirection = ProgressOrientation.Right;
_waitingBarElement.Size =
new
Size(120, 14);
_waitingBarElement.WaitingIndicatorSize =
new
Size(50, 30);
_waitingBarElement.WaitingSpeed = 90;
_waitingBarElement.WaitingStep = 2;
_waitingBarElement.WaitingStyle = WaitingBarStyles.Dash;
//_waitingBarElement.Visibility = ElementVisibility.Collapsed;
_waitingBarElement.StartWaiting();
_textLayout.Children.Add(_waitingBarElement);
Children.Add(_overallLayout);
Padding =
new
Padding(10);
Margin =
new
Padding(4, 2, 4, 2);
Shape =
new
RoundRectShape(5);
DrawBorder =
true
;
DrawFill =
true
;
BorderInnerColor = SystemColors.ControlLightLight;
BorderInnerColor2 = SystemColors.Control;
BorderInnerColor3 = SystemColors.ControlDark;
BorderInnerColor4 = SystemColors.ControlDarkDark;
BorderGradientStyle = GradientStyles.Solid;
BorderBottomColor = SystemColors.ControlDark;
BorderLeftColor = SystemColors.ControlDark;
BorderTopColor = SystemColors.ControlDark;
BorderRightColor = SystemColors.ControlDark;
BorderGradientAngle = 270;
BorderGradientStyle = GradientStyles.Solid;
BackColor = SystemColors.Window;
BackColor2 = SystemColors.Control;
BackColor3 = SystemColors.ControlDark;
BackColor4 = SystemColors.ControlLightLight;
GradientAngle = 90;
GradientPercentage = (
float
) 0.5;
GradientPercentage2 = (
float
) 0.666;
GradientStyle = GradientStyles.Linear;
NumberOfColors = 2;
SmoothingMode = SmoothingMode.AntiAlias;
}
protected
override
void
OnMouseEnter(EventArgs e)
{
base
.OnMouseEnter(e);
BorderInnerColor = SystemColors.ControlLightLight;
BorderInnerColor2 = SystemColors.Control;
BorderInnerColor3 = SystemColors.ControlDark;
BorderInnerColor4 = SystemColors.ControlDarkDark;
BorderGradientStyle = GradientStyles.Solid;
BorderBottomColor = SystemColors.ControlDark;
BorderLeftColor = SystemColors.ControlDark;
BorderTopColor = SystemColors.ControlDark;
BorderRightColor = SystemColors.ControlDark;
BorderGradientAngle = 90;
BorderGradientStyle = GradientStyles.Linear;
BackColor = SystemColors.Window;
BackColor2 = SystemColors.Control;
BackColor3 = SystemColors.ControlDark;
BackColor4 = SystemColors.ControlLightLight;
GradientAngle = 90;
GradientPercentage = (
float
)0.5;
GradientPercentage2 = (
float
)0.666;
GradientStyle = GradientStyles.Linear;
NumberOfColors = 3;
SmoothingMode = SmoothingMode.AntiAlias;
}
protected
override
void
OnMouseLeave(EventArgs e)
{
base
.OnMouseLeave(e);
BorderInnerColor = SystemColors.ControlLightLight;
BorderInnerColor2 = SystemColors.Control;
BorderInnerColor3 = SystemColors.ControlDark;
BorderInnerColor4 = SystemColors.ControlDarkDark;
BorderGradientStyle = GradientStyles.Solid;
BorderBottomColor = SystemColors.ControlDark;
BorderLeftColor = SystemColors.ControlDark;
BorderTopColor = SystemColors.ControlDark;
BorderRightColor = SystemColors.ControlDark;
BorderGradientAngle = 270;
BorderGradientStyle = GradientStyles.Solid;
BackColor = SystemColors.Window;
BackColor2 = SystemColors.Control;
BackColor3 = SystemColors.ControlDark;
BackColor4 = SystemColors.ControlLightLight;
GradientAngle = 90;
GradientPercentage = (
float
)0.5;
GradientPercentage2 = (
float
)0.666;
GradientStyle = GradientStyles.Linear;
NumberOfColors = 2;
SmoothingMode = SmoothingMode.AntiAlias;
}
protected
override
void
SynchronizeProperties()
{
_imageElement.Image = (Image)Data[
"Image"
];
_nameElement.Text = Convert.ToString(Data[
"Name"
]);
_descriptionElement.Text = Convert.ToString(Data[
"Description"
]);
}
protected
override
SizeF MeasureOverride(SizeF availableSize)
{
var measuredSize =
base
.MeasureOverride(availableSize);
_overallLayout.Measure(measuredSize);
return
measuredSize;
}
protected
override
SizeF ArrangeOverride(SizeF finalSize)
{
base
.ArrangeOverride(finalSize);
_overallLayout.Arrange(
new
RectangleF(PointF.Empty, finalSize));
return
finalSize;
}
}
private
void
LvViewsItemMouseClick(
object
sender, ListViewItemEventArgs e)
{
if
(_resultsTable==
null
)
_resultsTable = StrategyBacktestLoader.getBacktestResults(frmParadigmFM.Authority, ThisParent.StrategyID, ThisParent.ID,
ThisVariation.ID);
var element = sender
as
RadCustomVariationViewVisualItem;
var view = (BacktestViewType) e.Item.Tag;
DisplayBacktestView(view);
}
Hi,
I am using this property for best fit my column(objComboBox.MultiColumnComboBoxElement.AutoSizeDropDownToBestFit =
true;) in RadMultiColumnComboBox columns but when i have data source which have a lot of data i need to implement filtering on it.
I am implemening it in this way:
FilterDescriptor filter = new FilterDescriptor();
filter.PropertyName = objComboBox.DisplayMember;
filter.Operator =
FilterOperator.Contains;
objComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
but it's take a lot of time when the filter is auto complete.
Please how to make filtering in this controll and dont take a time.
Note: When i am not using AutoSizeDropDownToBestFit it's( Filter) works fine and i dont have delay( my data source have more then 1000 items and 3 columns), but when i have Combo which have more then 3 column and the size of DropDown is less, than the user can not see what have in that control.
What is your suggestion to eliminate this issue.
Best regards,
Gezim