What's a good way to bind hybrid data [from db plus extra/derived] to a DataGrid?
I'm writing a small CRUD application using ADO.NET to talk to the DB and WPF to present and interact with user. Things are smooth if I'm binding DataTable.DefaultView to the Items property of a DataGrid. But if I want to display some derived data per row things fall apart. Say I have a SalesPerson table, but in addition to the columns in that table, I want to display the number of clients that person handles. This is a derived column that will be filled in my code. I can't use a default DataTable anymore.
Is it acceptable to create a DataTable definition for every view I'm making? Then change tracking is free, but I have to tell my adapter to properly commit back.
I also tried creating a wrapper class over DataRow and display an ObservableCollection of those, but I'm losing some of the change tracking the DataTable provides. Like adding new DataRow is a pain, validation...
Is there an established way to create views that are more complex than just the columns of a related SQL table?
ado.net wpfdatagrid
add a comment |
I'm writing a small CRUD application using ADO.NET to talk to the DB and WPF to present and interact with user. Things are smooth if I'm binding DataTable.DefaultView to the Items property of a DataGrid. But if I want to display some derived data per row things fall apart. Say I have a SalesPerson table, but in addition to the columns in that table, I want to display the number of clients that person handles. This is a derived column that will be filled in my code. I can't use a default DataTable anymore.
Is it acceptable to create a DataTable definition for every view I'm making? Then change tracking is free, but I have to tell my adapter to properly commit back.
I also tried creating a wrapper class over DataRow and display an ObservableCollection of those, but I'm losing some of the change tracking the DataTable provides. Like adding new DataRow is a pain, validation...
Is there an established way to create views that are more complex than just the columns of a related SQL table?
ado.net wpfdatagrid
add a comment |
I'm writing a small CRUD application using ADO.NET to talk to the DB and WPF to present and interact with user. Things are smooth if I'm binding DataTable.DefaultView to the Items property of a DataGrid. But if I want to display some derived data per row things fall apart. Say I have a SalesPerson table, but in addition to the columns in that table, I want to display the number of clients that person handles. This is a derived column that will be filled in my code. I can't use a default DataTable anymore.
Is it acceptable to create a DataTable definition for every view I'm making? Then change tracking is free, but I have to tell my adapter to properly commit back.
I also tried creating a wrapper class over DataRow and display an ObservableCollection of those, but I'm losing some of the change tracking the DataTable provides. Like adding new DataRow is a pain, validation...
Is there an established way to create views that are more complex than just the columns of a related SQL table?
ado.net wpfdatagrid
I'm writing a small CRUD application using ADO.NET to talk to the DB and WPF to present and interact with user. Things are smooth if I'm binding DataTable.DefaultView to the Items property of a DataGrid. But if I want to display some derived data per row things fall apart. Say I have a SalesPerson table, but in addition to the columns in that table, I want to display the number of clients that person handles. This is a derived column that will be filled in my code. I can't use a default DataTable anymore.
Is it acceptable to create a DataTable definition for every view I'm making? Then change tracking is free, but I have to tell my adapter to properly commit back.
I also tried creating a wrapper class over DataRow and display an ObservableCollection of those, but I'm losing some of the change tracking the DataTable provides. Like adding new DataRow is a pain, validation...
Is there an established way to create views that are more complex than just the columns of a related SQL table?
ado.net wpfdatagrid
ado.net wpfdatagrid
asked Nov 12 at 17:44
cudima
16619
16619
add a comment |
add a comment |
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267452%2fwhats-a-good-way-to-bind-hybrid-data-from-db-plus-extra-derived-to-a-datagrid%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267452%2fwhats-a-good-way-to-bind-hybrid-data-from-db-plus-extra-derived-to-a-datagrid%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown