Hi,
I have some problem with my datagrid combobox. As in the image1 is my datagrid with the user name and the group names that i will like to assign the user to. After i select the group names for each user as in image2 as i scroll down to select the group for other users and then when i scroll back to top, the datagrid combobox becomes empty as in image3 except for the one selected row.
How can I avoid this problem to select all the datagrid combobox value even when i scroll down or up in the datagrid?
Below are my codes:
UserWindow.xaml
<DataGrid AlternatingRowBackground="AliceBlue" AlternationCount="2" Background="White" BorderBrush="DarkGray" Height="273" ColumnHeaderHeight="23" CanUserAddRows="False" HorizontalAlignment="Center" Margin="24,140,24,0" VerticalAlignment="Top" ItemsSource="{Binding MyData}" AutoGenerateColumns="False" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="" Binding="{Binding Checkbox, Mode=TwoWay}" MinWidth="25">
</DataGridCheckBoxColumn>
<DataGridTextColumn Header=" User" Binding="{Binding User, Mode=TwoWay}" Width="*" >
</DataGridTextColumn>
<DataGridTemplateColumn Header=" Group" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Margin="2" Height="30" Text="Select Group" SelectedItem="{Binding SelGroup}" ItemsSource="{Binding Group}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding GroupName}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
ModelClass.cs
namespace TokenLicenseUsageReport
{
public class ModelClass:Helpers.VmBase
{
private ModelClass _SelGroup;
public ModelClass SelGroup
{
get { return _SelGroup; }
set { _SelGroup = value; OnPropertyChanged("SelGroup"
; }
}
private ObservableCollection<ModelClass> _group;
public ObservableCollection<ModelClass> Group
{
get { return _group; }
set
{
_group = value;
OnPropertyChanged("Group"
;
}
}
private string _user;
public string User
{
get { return _user; }
set
{
_user = value;
OnPropertyChanged("User"
;
}
}
public ObjectItem Source { get; set; }
private bool _Checkbox = true;
public bool Checkbox
{
get
{
return _Checkbox;
}
set
{
_Checkbox = value;
OnPropertyChanged("Checkbox"
;
}
}
public string GroupName { get; set; }
public ModelClass(ObjectItem source)
{
Source = source;
GroupName = source.Name;
}
public ModelClass()
{
}
}
}
VmUserWindow.cs
private ObservableCollection<ModelClass> _group2;
public ObservableCollection<ModelClass> Group2
{
get { return _group2; }
set
{
_group2 = value;
OnPropertyChanged("Group2"
;
}
}
private ObservableCollection<ModelClass> _MyData;
public ObservableCollection<ModelClass> MyData
{
get { return _MyData; }
set
{
_MyData = value;
OnPropertyChanged("MyData"
;
}
}
public HashSet<string> debug2;
public string FilePlace { get; set; }
public ObjectCollection TokenTemplate;
public Application myApplication;
public ICommand CmdRun { get; private set; }
public ICommand CmdCancel { get; private set; }
public ICommand CmdAdd { get; private set; }
public ModelClass MySelectedItem { get; set; }
public UserWindow user;
public HashSet<string> debug;
public HashSet<AddtoExcel> addtoexcel;
public ICollectionView Customers { get; set; }
public ICollectionView GroupedCustomers { get; set; }
public List<VmDateWindow.GroupFile> GroupFiles;
public string NewGroup { get; set; }
public struct AddtoExcel
{
public string member { get; set; }
public string group { get; set; }
}
public struct GetRow
{
public int RowID { get; set; }
public int ColID { get; set; }
public string Group { get; set; }
public string Member { get; set; }
}
public VmUserWindow(UserWindow user, HashSet<string> debug, List<VmDateWindow.GroupFile> GroupFiles, Application myApplication, string FilePlace)
{
MyData = new ObservableCollection<ModelClass>();
CmdAdd = new Helpers.RelayCommand(ExeAdd);
this.FilePlace = FilePlace;
CmdRun = new Helpers.RelayCommand(ExeRun);
CmdCancel = new Helpers.RelayCommand(ExeCancel);
this.user = user;
this.myApplication = myApplication;
addtoexcel = new HashSet<AddtoExcel>();
debug2 = new HashSet<string>();
Group2 = new ObservableCollection<ModelClass>();
Group2.Add(new ModelClass() { GroupName = "GOPReinach" });
foreach (var item in debug)
{
MyData.Add(new ModelClass() { User = item, Group = Group2 });
}
}