Combobox using repositoryItems like autocomplete mode - c#

I use Grid control for data entry, and one column I made ComboBox using repositoryItems . Now I want to know if there is an option that while I type some text into Combobox cell to display a drop down list of possible entries. Something like autocomplete options.

There are no such option in RepositoryItemComboBox. You can find the RepositoryItemComboBox.AutoComplete property, but this property does not show the list of possible entries. It shows all entries:
You can get the drop down list of possible entries by using RepositoryItemLookUpEdit class and set RepositoryItemLookUpEdit.SearchMode property to AutoFilter value:
Also you can find such functionality in RepositoryItemGridLookUpEdit class:
And in RepositoryItemSearchLookUpEdit class:

Related

Contains filter search doesn't work for devexpress gridview c#

I have a grid view column called LineNumber i set the autofiltercondition to contains .as you can see here :
But it doesn't work in running as you can see .and i have to enter the whole linenumber to find it .
Should i set something else property ?as you can see i have to enter 1.1/2... to find the line,but i need something like this %my text% in sqlserver
Please go through documentation of AutoFilterCondition Enumeration
Enumerates the comparison operator types for the filter conditions
created for specific columns via the automatic filtering row.
This will work if you have either enabled AutoFilter Row functionality or filter criteria in code.
For the FilterPopupMode Enumeration -
Contains values that specify the filter dropdown style for grid columns.
You have set it to CheckedList, So the filter dropdown is represented as a checked list of filter items. In this mode, an end-user can select more than one item simultaneously. When the dropdown window is closed by clicking the OK button, the View will display those records that contain the checked values
Hope this information help you..
References:
Autofilter Contains
AutoFilter Row problem with LIKE conditions

WPF: add dynamic ToolTip to DataGridCell

I'm developing my first WPF application that queries a database and shows some records of some tables in TabControl if one or more fields of these records not satisfy certain condition.
I have a DataTable as data source and I use a DataGrid to show results (i.e. the wrong records). I'd like to use ToolTip on DataGridCell to indicate why a field is considered wrong. There's a way to iterate over the DataGridRow and the DataGridCell so that I can set dynamic ToolTipfor every specific field?
Thanks in advance.
I would bind the DataGrid selected item to a SelectedRecord property in my view model (where the data source is coming from), see Get selected row item in DataGrid WPF as an example. The SelectedRecord property would then set the SelectedRecordToolTip property in accordance to the SelectedRecord value (i.e. using a dictionary with the error as the key and the tooltip as the value). Finally, you can then bind your tooltip to the SelectedRecordToolTip property.

C# WinForm DataGridView with autocomplete ComboBox column supplied with dynamic data from database source

I need to add a ComboBox column in my datagrdiview (winform) with these simple functionalities:
Autocomplete
Loads items from database dinamically, based on typed value (all items starting with typed text)
Possibility to insert new value (type text with no match on database values)
I tried to set datasource of myComboBoxColumn at KeyDown event of editing control (the combobox) with no success.
There are two Properties you need to write for ComboBox Column
1. column1.AutoCompleteMode=AutoCompleteMode.Suggest;
2. column1.AutoCompleteSource=AutoCompleteSource.ListItems;

Can I use a combobox in a programmatically bound datagrid C#

I am using entity framework and binding to a datagrid to display the results of my query. Instead of showing the foreign key from the result, I would like to show the more meaningful value from the lookup table and limit the users input by using a combobox too.
Is it possible to use a combobox in a programmatically bound datagrid on a winform? If so - how?
Thanks in advance,
James
There is a column type for a combobox in a DataGridView:
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxcolumn.aspx
For changing the display value you can use this event:
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx

C# Datagridview: get selected item in combobox columns

I'm working on a GUI that allows the user to manipulate xml files. I display the xml file in a datagridview organized neatly by columns through xml elements. I allow the user to add columns as an extention on my project. The column gets added to the dataset table, then updated to the datagridveiew that I use to display the xml file in. I've included the ability for the user to add a combobox column to select choices instead of entering them in constantly like.. true or false. However, that is where the problem lies. Saving a normal column was easy. The combobox column is being a pain.
I have a "save combobox column" to have it updated to the xml and a "save" button to save in a destination of the user's choice.
I've done some research and it seems like the combobox class has such a feature to gain access to the selecteditem in the combobox put in by the user.
Where we have:
ComboBox box = new ComboBox();
box.SelectedItem;
I tried applying this to the combobox column class but it does not have such a function. Thus, I cannot figure out how to directly obtain the value of the user's selected item. I tried experimenting with comboboxcell's as well, but that didn't lead me anywhere either. Both those classes I played around with do not have a... "selected item" function and even google does not have a solution for me. =( I've also tried using the cell.value, but it is "null" for some reason. Even when the user selects an item in the box, it doesn't get saved into the cell's value.
TLDR:
My question in short is, how, if possible, do you gain access to the comboboxcolumn cell's selected item? Additionally, how would you then ensure that the item value is saved in the cell?
Thanks in advance. I'm using .NET 3.5 SP1, through Visual Studio 2008 C#.
Sincerely,
tf.rz
The Control in a DataGridView is not a ComboBox, it is a DataGridViewComboBox and has different properties and methods. From MSDN
Unlike the ComboBox control, the DataGridViewComboBoxCell does not have SelectedIndex and SelectedValue properties. Instead, selecting a value from a drop-down list sets the cell Value property.
However, you mentioned that the Cell.Value is null for you. Well there may be another step you are missing according to the following article (How to: Access Objects in a Windows Forms DataGridViewComboBoxCell Drop-Down List).
You must set the DataGridViewComboBoxColumn.ValueMember or DataGridViewComboBoxCell.ValueMember property to the name of a property on your business object. When the user makes a selection, the indicated property of the business object sets the cell Value property.
If we have bound a datagridcomboboxcell with a different DisplayMember and ValueMember, like so:
dgcombocell.DisplayMember = "Name";
dgcombocell.ValueMember = "Id";
dgcombocell.DataSource = dataset1.Tables[0];
Then for getting SelectedText, and SelectedValue, we can write this code:
string SelectedText = Convert.ToString((DataGridView1.Rows[0].Cells["dgcombocell"] as DataGridViewComboBoxCell).FormattedValue.ToString());
int SelectedVal = Convert.ToInt32(DataGridView1.Rows[0].Cells["dgcombocell"].Value);
I hope it solves your problem.
Use this to get or set selected value:
object selectedValue = currentRow.Cells["comboboxColumnName"].Value
Don't forget to set DisplayMember and ValueMember for your DataGridViewComboBoxColumn
This is how it is done
DataGridViewComboBoxCell comboCell = (DataGridViewComboBoxCell)dgv.Rows[0].Cells[1];
MessageBox.Show(""+comboCell.Items.IndexOf(comboCell.Value));
A .Net combox is actually a composite control made up of a textbox and a dropdownlist. Use box.Text to get the currently displayed information.
EDIT: The row or the cell should have a .FindControl() method. You'll need to do something like:
Combobox box = (Combobox)(row.FindControl("[combobox ID]"));
string val = box.Text;
Basically, you're finding the control within its container (row or cell), then casting the control found as a combobox, then accessing its .Text property.
I use this:
private int GetDataGridViewComboBoxCellSelectedIndex(DataGridViewCell d)
{
return ((DataGridViewComboBoxCell)d).Items.IndexOf(d.Value);
}

Categories

Resources