countrymeister
asked on
ComboBox selected value using MVVM not showing in the display
I have a ComboBox displaying a checkbox and some text.
The combox is bound to a class called SecurityType which has two properties. SecType and IsSelected.
When I select one or more rows I need to get the value of the items selected in the combobox display, instead I see the class bound to the combobox.
The user can select one or more items.
Here is my code
Model
public class SecurityType : NotificationObject
{
public SecurityType(string secType, bool isSelected)
{
SecType = secType;
IsSelected = isSelected;
}
private string _secType;
public string SecType
{
get { return _secType; }
set
{
if (_secType != value)
{
_secType = value;
RaisePropertyChanged(() => SecType);
}
}
}
private bool _isSelected;
public bool IsSelected
{
get { return _isSelected; }
set
{
if (_isSelected != value)
{
_isSelected = value;
RaisePropertyChanged(() => IsSelected);
}
}
}
}
ViewModel
public class SecurityViewModel : BaseViewModel
{
private ObservableCollection<Secur ityType> _securitytypeCollection;
public ObservableCollection<Secur ityType> SecurityTypeCollection
{
get { return _securitytypeCollection; }
set
{
if (_securitytypeCollection != value)
{
_securitytypeCollection = value;
RaisePropertyChanged(() => SecurityTypeCollection);
}
}
}
SecurityType _selectedSecurityType;
public SecurityType SelectedSecurityType
{
get
{
return _selectedSecurityType;
}
set
{
_selectedSecurityType = value;
//RaisePropertyChanged(() => SelectedSecurityType);
}
}
public SecurityViewModel()
{
GetData();
}
XAML
<c1:C1ComboBox Grid.Row="0" Grid.Column="1" SelectedItem="{Binding SelectedSecurityType, Mode=TwoWay}" SelectedValuePath="SecType " ItemsSource="{Binding SecurityTypeCollection}" >
<c1:C1ComboBox.ItemTemplat e>
<DataTemplate >
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}"
Width="20" />
<TextBlock Text="{Binding SecType}"
Width="100" />
</StackPanel>
</DataTemplate>
</c1:C1ComboBox.ItemTempla te>
</c1:C1ComboBox>
The combox is bound to a class called SecurityType which has two properties. SecType and IsSelected.
When I select one or more rows I need to get the value of the items selected in the combobox display, instead I see the class bound to the combobox.
The user can select one or more items.
Here is my code
Model
public class SecurityType : NotificationObject
{
public SecurityType(string secType, bool isSelected)
{
SecType = secType;
IsSelected = isSelected;
}
private string _secType;
public string SecType
{
get { return _secType; }
set
{
if (_secType != value)
{
_secType = value;
RaisePropertyChanged(() => SecType);
}
}
}
private bool _isSelected;
public bool IsSelected
{
get { return _isSelected; }
set
{
if (_isSelected != value)
{
_isSelected = value;
RaisePropertyChanged(() => IsSelected);
}
}
}
}
ViewModel
public class SecurityViewModel : BaseViewModel
{
private ObservableCollection<Secur
public ObservableCollection<Secur
{
get { return _securitytypeCollection; }
set
{
if (_securitytypeCollection != value)
{
_securitytypeCollection = value;
RaisePropertyChanged(() => SecurityTypeCollection);
}
}
}
SecurityType _selectedSecurityType;
public SecurityType SelectedSecurityType
{
get
{
return _selectedSecurityType;
}
set
{
_selectedSecurityType = value;
//RaisePropertyChanged(() => SelectedSecurityType);
}
}
public SecurityViewModel()
{
GetData();
}
XAML
<c1:C1ComboBox Grid.Row="0" Grid.Column="1" SelectedItem="{Binding SelectedSecurityType, Mode=TwoWay}" SelectedValuePath="SecType
<c1:C1ComboBox.ItemTemplat
<DataTemplate >
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}"
Width="20" />
<TextBlock Text="{Binding SecType}"
Width="100" />
</StackPanel>
</DataTemplate>
</c1:C1ComboBox.ItemTempla
</c1:C1ComboBox>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
No one looked into this issue. Very disappointed with th experts.
I eventually found a way to do this
I eventually found a way to do this
Model
Open in new window
ViewModel
Open in new window
XamlOpen in new window