Search code examples
c#wpfxamltelerik

How can I disable an item in RadmulticolumnCombobox WPF?


I have a Telerik RadMulticolumnCombobox that populates from an Itemsourceprovider, what I would like is to set isEnable to false for a specific item in this control.

The problem is that I cannot find any property that releases this task.

<telerik:RadMultiColumnComboBox DisplayMemberPath="LastName"
                                NullText="Select employee to handle the order..."
                                Width="300"
                                DropDownWidth="530"
                                DropDownHeight="255">
 

  <telerik:RadMultiColumnComboBox.ItemsSourceProvider>
        <telerik:GridViewItemsSourceProvider AutoGenerateColumns="False" ItemsSource="{Binding Employees}" >
            <telerik:GridViewItemsSourceProvider.Columns>
                <telerik:GridViewDataColumn Header="First Name" DataMemberBinding="{Binding FirstName}" />
                <telerik:GridViewDataColumn Header="Last Name" DataMemberBinding="{Binding LastName}" />
                <telerik:GridViewDataColumn DataMemberBinding="{Binding City}" />
                <telerik:GridViewDataColumn Header="Hire Date" DataMemberBinding="{Binding HireDate}" />
                <telerik:GridViewDataColumn Header="Orders Count" DataMemberBinding="{Binding Orders.Count}" />
            </telerik:GridViewItemsSourceProvider.Columns>
        </telerik:GridViewItemsSourceProvider>
    </telerik:RadMultiColumnComboBox.ItemsSourceProvider>
</telerik:RadMultiColumnComboBox>

enter image description here

What can I do?


Solution

  • Finally, I solved my problem !! I can't believe the solution is that easy.

    I have created a rowStyle and I have created a propertyChanged in my class

         <telerik:GridViewItemsSourceProvider.RowStyle>
                                <Style TargetType="telerik:GridViewRow">
                                    <Setter Property="IsEnabled" Value="{Binding IsSelected}">
                                    </Setter>
                                </Style>
                            </telerik:GridViewItemsSourceProvider.RowStyle>
    

    and this my class :

        public class MyModel: INotifyPropertyChanged
         {
        
    
        public event PropertyChangedEventHandler PropertyChanged;
    
        private bool isSelected;
        public bool IsSelected
          {
            get { return isSelected; }
            set
            {
                if (isSelected != value)
                {
                    isSelected = value;
                    OnPropertyChanged("IsSelected");
                }
            }
        }
        protected void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null) 
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    

    and I have set the value of this property in my main like this :

    var models = new List<MyModel>();
    // ....
    
    foreach ( var m in models)
        m.IsSelected = true;
    var item = mycombob.selectedItem as MyModel;
    item.IsSelected = false; // disable the selected item for example