Hello Telerik Team,
Yes.this is big paragraph but question is simple.I have some doupts in Gridview.In my last project master page contains 4 Business objets.
All are declared as Boolean only.So i am using Rad combo box.The field Names are NeedLoanPrint(Values are Yes\No),NeedDeliveryPrint(Yes\No),Close BS(Yes\No),PrintedType(Dos\Windows).
In my database also these are declared as BIT only.So these details are stored in database as true or false.But i want to display in radgridview the original format only.That means NeedLoanPrint,NeedDeliveryPrint,Close BS column values Yes or No only.
Same time Printed type column values Dos or Windows only.
I know its not possible directly.so i am using Converter.Here i created two converters.one is BooleanToYesNoConverter,another one BooleanToDosWindowsConverter.i have attached all in below.
After Converted radgridview display nothing in that columns.so i am creating label inside DataTemplate:
if i create above method to all column its display fine.No mistakes.
In my project in future may come more field as Boolean Type.Whenever i won't create DataTemplate in XAML.So i am creating one class called as GridViewLabelColumn.After that i will use easily.
My XAML will:
here is MY QUESTION:
Everything is display fine.But the values are Changing everyseconds in radGridView.Example Printedtype Column Values originally Dos or Windows only.But it display one row Dos next row No(Its come from another column value).after few seconds Dos will change Yes or No respective their Boolean Value.
NeedloanPrint column values also comes Dos and Windows.Everysecond it change.
where i make mistake here?
pls give me some suggestion.
Yes.this is big paragraph but question is simple.I have some doupts in Gridview.In my last project master page contains 4 Business objets.
All are declared as Boolean only.So i am using Rad combo box.The field Names are NeedLoanPrint(Values are Yes\No),NeedDeliveryPrint(Yes\No),Close BS(Yes\No),PrintedType(Dos\Windows).
In my database also these are declared as BIT only.So these details are stored in database as true or false.But i want to display in radgridview the original format only.That means NeedLoanPrint,NeedDeliveryPrint,Close BS column values Yes or No only.
Same time Printed type column values Dos or Windows only.
I know its not possible directly.so i am using Converter.Here i created two converters.one is BooleanToYesNoConverter,another one BooleanToDosWindowsConverter.i have attached all in below.
This is my BooleanToYesNoConverter:
class BooleanToYesNoConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string returnValue = string.Empty;
if ((bool)value == true)
{
returnValue = "Yes";
return (string)returnValue;
}
else
{
returnValue = "No";
return (string)returnValue;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
This is my BooleanToDosWindowsconverter:
class BooleanToDosWindowsConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string returnName = string.Empty;
if ((bool)value == true)
{
returnName = "Windows";
return (string)returnName;
}
else
{
returnName = "Dos";
return (string)returnName;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
<
Meenakshi:GridViewDataColumn
Header
=
"Need Loan Print"
Width
=
"120"
>
<
Meenakshi:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
Label
Content
=
"{Binding NeedLoanPrint,Converter={StaticResource booleanToYesNoConverter}}"
/>
</
DataTemplate
>
</
Meenakshi:GridViewDataColumn.CellTemplate
>
</
Meenakshi:GridViewDataColumn
>
In my project in future may come more field as Boolean Type.Whenever i won't create DataTemplate in XAML.So i am creating one class called as GridViewLabelColumn.After that i will use easily.
class GridViewLabelColumn : GridViewBoundColumnBase
{
public override FrameworkElement CreateCellElement(GridViewCell cell, object dataItem)
{
Label button = cell.Content as Label;
if (button == null)
{
button = new Label();
var valueBinding = new Binding(this.DataMemberBinding.Path.Path)
{
Mode = BindingMode.OneTime,
Converter = this.DataMemberBinding.Converter
};
button.SetBinding(Button.ContentProperty, valueBinding);
}
return button;
}
}
<
UserControl.Resources
>
<
CustomControl:BooleanToYesNoConverter
x:Key
=
"booleanToYesNoConverter"
/>
<
CustomControl:BooleanToDosWindowsConverter
x:Key
=
"booleanToDosWindowsconverter"
/>
</
UserControl.Resources
>
<
Meenakshi:RadGridView
IsReadOnly
=
"True"
AutoGenerateColumns
=
"False"
Margin
=
"12,411,12,12"
Name
=
"rgrdCompanyViewAll"
MouseDoubleClick
=
"rgrdCompanyViewAll_MouseDoubleClick"
>
<
Meenakshi:RadGridView.Columns
>
<
CustomControl:GridViewLabelColumn
DataMemberBinding
=
"{Binding Path=NeedLoanPrint,ElementName=NeedLoanPrint,Converter={StaticResource booleanToYesNoConverter }}"
Header
=
"Need Loan Print"
Width
=
"120"
/>
<
CustomControl:GridViewLabelColumn
DataMemberBinding
=
"{Binding Path=NeedDeliveryPrint,ElementName=NeedDeliveryPrint,Converter={StaticResource booleanToYesNoConverter}}"
Header
=
"Need Delivery print"
Width
=
"120"
/>
<
CustomControl:GridViewLabelColumn
DataMemberBinding
=
"{Binding Path=CloseBS,ElementName=CloseBS,Converter={StaticResource booleanToYesNoConverter}}"
Header
=
"Close BS"
Width
=
"120"
/>
<
CustomControl:GridViewLabelColumn
DataMemberBinding
=
"{Binding Path=PrintedType,ElementName=PrintedType,Converter={StaticResource booleanToDosWindowsconverter}}"
Header
=
"Printed Type"
Width
=
"120"
/>
</
Meenakshi:RadGridView.Col
</Meenakshi:RadGridView>
Everything is display fine.But the values are Changing everyseconds in radGridView.Example Printedtype Column Values originally Dos or Windows only.But it display one row Dos next row No(Its come from another column value).after few seconds Dos will change Yes or No respective their Boolean Value.
NeedloanPrint column values also comes Dos and Windows.Everysecond it change.
where i make mistake here?
pls give me some suggestion.