我想在組合框僅這些要素,以顯示這些元素,沒有在表列中存在。如何在組合框中僅顯示不在表C#
我的表:
<DataGrid Grid.Row="1" ItemsSource="{Binding MainRows, ValidatesOnDataErrors=True}"
CanUserAddRows="True"
>
<DataGrid.Columns>
<DataGridTemplateColumn Width="2*" Header="Agent" >
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<ComboBox
SelectedItem="{Binding Item, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
ItemsSource="{Binding Path=DataContext.AvaibleAgents, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}}}">
<ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
用戶可以添加代理只是一個時間。一個想從組合框的項目刪除,那些在數據網格存在 我的DataContext VM
public class MainDocumentVM : CCRDocumentVM
{
public MainDocumentVM(CCRMainDocument innerValue) : base(innerValue)
{
}
public List<MainRowVM> _MainRows;
public List<MainRowVM> MainRows
{
get
{
//TODO: Refactor it ASAP
if (MainRows == null)
{
_ccrMainRows = (InnerValue as MainDocument).MainRows.Select(x => new MainRowVM(x)).ToList();
}
return _MainRows.Where(x=>x.InnerValue.IsActive).ToList();
}
}
#region Functionality
private MainRowVM _selectedRow;
public MainRowVM SelectedRow
{
get { return _selectedRow; }
set
{
_selectedRow = value;
OnPropertyChanged();
}
}
public ICommand AddNewRowCommand
{
get
{
return Commands.GetOrCreateCommand(() => AddNewRowCommand,(() => AddNewRow(CCRMainRow.CreateNew<MainRow>())));
}
}
public void AddNewRow(MainRow row)
{
(InnerValue as MainDocument).CCRMainRows.Add(row);
if (_MainRows != null)
{
MainRows.Add(new MainRowVM(row));
}
OnPropertyChanged(nameof(MainRows));
//OnPropertyChanged(nameof(AvaibleItems));
}
public List<Agents> AvaibleAgents
{
get
{
return ManagerFactoryResolver.CurrentFactory.CCRAgentsManager.AllValues
.ToList();
}
}
}
排我的視圖模型:
public class MainRowVM : EditableDataVM<MainRow>
{
public MainRowVM(MainRow innervalue) : base(innervalue)
{ }
public Agent Agent
{
get
{
return ManagerFactoryResolver.CurrentFactory.AgentManager
.AllValues.FirstOrDefault(x => x.Id == InnerValue.AgentID);
}
set
{
InnerValue.AgentID = value.Id;
OnPropertyChanged();
}
}
您使用的MVVM?請發佈您的ViewModel代碼 – ganeshran
您的問題太廣泛。但是您應該查看'CollectionViewSource'來獲取您的'AvaibleAgents'集合,這樣您就可以實施過濾。 –
對不起,現在我試着添加一些虛擬機。 你的意見的樣子,我有什麼需要 –