すべて、簡単な質問です。DataGridを使用してViewModelにバインドしたMVVMアプリケーションがあります
<DataGrid ItemsSource="{Binding Path=Resources}" ...></DataGrid>
はResources経由で定義されます
public ObservableCollection<ResourceViewModel> Resources { get; private set; }
ただし、ResourceViewModelクラスには、 に表示したいプロパティだけでなく、 に表示したくないDataGrid他のプロパティもあります。クラスはDataGridResourceViewmodel
public class ResourceViewModel : WorkspaceViewModel, IDataErrorInfo
{
readonly Resource resource;
readonly ResourceDataRepository resourceRepository;
private bool isSelected;
public ResourceViewModel(Resource resource, ResourceDataRepository resourceRepository)
{
if (resource == null)
throw new ArgumentNullException("resource");
if (resourceRepository == null)
throw new ArgumentNullException("resourceRepository");
this.resource = resource;
this.resourceRepository = resourceRepository;
}
public string KeyIndex
{
get { return this.resource.KeyIndex; }
set
{
if (value == this.resource.KeyIndex)
return;
this.resource.KeyIndex = value;
base.OnPropertyChanged("KeyIndex");
}
}
public string FileName
{
get { return this.resource.FileName; }
set
{
if (value == this.resource.FileName)
return;
this.resource.FileName = value;
base.OnPropertyChanged("FileName");
}
}
public List<string> ResourceStringList
{
get { return this.resource.ResourceStringList; }
set
{
if (Utilities.Utilities.ScrambledEquals<string>(this.resource.ResourceStringList, value))
return;
this.resource.ResourceStringList = value;
base.OnPropertyChanged("ResourceStringList");
}
}
public bool IsSelected
{
get { return isSelected; }
set
{
if (value == isSelected)
return;
isSelected = value;
base.OnPropertyChanged("IsSelected");
}
}
}
IsSelectedに表示したくない場所で、 のDataGrid各項目をResourceStringListの別の列に表示したいDatagrid。私の質問は次のとおりです。
IsSelected1. に[as a Checkbox] が表示されないようにするにはどうすればよいDataGridですか?
DataGrid2.項目を別々の列に自動的に表示するためのバインドを取得するにはどうすればよいですか?
何を試しましたか:
クラスから継承して
ResourceViewmodel代わりにこれにバインドしようとしましたが、これはうんざりで、別のよりエレガントなソリューションが必要です。お願いします :]。これをどのように進めればよいかわかりません。に格納されるアイテムの数
Listは変数であり、実行時に設定されるため、List.
いつもありがとうございます。