すべて、簡単な質問です。DataGrid
を使用してViewModelにバインドしたMVVMアプリケーションがあります
<DataGrid ItemsSource="{Binding Path=Resources}" ...></DataGrid>
はResources
経由で定義されます
public ObservableCollection<ResourceViewModel> Resources { get; private set; }
ただし、ResourceViewModel
クラスには、 に表示したいプロパティだけでなく、 に表示したくないDataGrid
他のプロパティもあります。クラスはDataGrid
ResourceViewmodel
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
。私の質問は次のとおりです。
IsSelected
1. に[as a Checkbox
] が表示されないようにするにはどうすればよいDataGrid
ですか?
DataGrid
2.項目を別々の列に自動的に表示するためのバインドを取得するにはどうすればよいですか?
何を試しましたか:
クラスから継承して
ResourceViewmodel
代わりにこれにバインドしようとしましたが、これはうんざりで、別のよりエレガントなソリューションが必要です。お願いします :]。これをどのように進めればよいかわかりません。に格納されるアイテムの数
List
は変数であり、実行時に設定されるため、List
.
いつもありがとうございます。