显示 xaf 中的非持久对象列表
Showing list of nonpersistent objects in xaf
我想使用 xaf 显示非持久对象的列表视图。我有一个非持久性 class。我想在弹出 window 时将其显示为列表视图。到目前为止,我无法做到。任何帮助表示赞赏。
DevExpress 支持中心有一个完整的示例:How to: Display a List of Non-Persistent Objects. You can even run it online。
大部分解决方案是这样的:
public class ShowDuplicateBooksController : ObjectViewController<ListView, Book>
{
public ShowDuplicateBooksController()
{
PopupWindowShowAction showDuplicatesAction =
new PopupWindowShowAction(this, "ShowDuplicateBooks", "View");
showDuplicatesAction.CustomizePopupWindowParams += showDuplicatesAction_CustomizePopupWindowParams;
}
void showDuplicatesAction_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
{
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach(Book book in View.CollectionSource.List) {
if(!string.IsNullOrEmpty(book.Title)) {
if(dictionary.ContainsKey(book.Title)) {
dictionary[book.Title]++;
}
else
dictionary.Add(book.Title, 1);
}
}
DuplicatesList duplicateList = new DuplicatesList();
int duplicateId = 0;
foreach(KeyValuePair<string, int> record in dictionary) {
if (record.Value > 1) {
duplicateList.Duplicates.Add(
new Duplicate() {
Id = duplicateId,
Title = record.Key,
Count = record.Value });
duplicateId++;
}
}
e.View = Application.CreateDetailView(Application.CreateObjectSpace(), duplicateList);
e.DialogController.SaveOnAccept = false;
e.DialogController.CancelAction.Active["NothingToCancel"] = false;
}
}
对于 DevExpress 的所有东西,您应该先尝试他们的 support center。
我想使用 xaf 显示非持久对象的列表视图。我有一个非持久性 class。我想在弹出 window 时将其显示为列表视图。到目前为止,我无法做到。任何帮助表示赞赏。
DevExpress 支持中心有一个完整的示例:How to: Display a List of Non-Persistent Objects. You can even run it online。
大部分解决方案是这样的:
public class ShowDuplicateBooksController : ObjectViewController<ListView, Book>
{
public ShowDuplicateBooksController()
{
PopupWindowShowAction showDuplicatesAction =
new PopupWindowShowAction(this, "ShowDuplicateBooks", "View");
showDuplicatesAction.CustomizePopupWindowParams += showDuplicatesAction_CustomizePopupWindowParams;
}
void showDuplicatesAction_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
{
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach(Book book in View.CollectionSource.List) {
if(!string.IsNullOrEmpty(book.Title)) {
if(dictionary.ContainsKey(book.Title)) {
dictionary[book.Title]++;
}
else
dictionary.Add(book.Title, 1);
}
}
DuplicatesList duplicateList = new DuplicatesList();
int duplicateId = 0;
foreach(KeyValuePair<string, int> record in dictionary) {
if (record.Value > 1) {
duplicateList.Duplicates.Add(
new Duplicate() {
Id = duplicateId,
Title = record.Key,
Count = record.Value });
duplicateId++;
}
}
e.View = Application.CreateDetailView(Application.CreateObjectSpace(), duplicateList);
e.DialogController.SaveOnAccept = false;
e.DialogController.CancelAction.Active["NothingToCancel"] = false;
}
}
对于 DevExpress 的所有东西,您应该先尝试他们的 support center。