WPF - Why does image source binding not work?
When I try to bind an image path, which is initially a string, to an image the image doesn't show up, why is that?
I have created a separate file other than my main class which will contain only image paths, that's because I have a lot of icons and I want their paths to be stored somewhere.
namespace Application.Images
{
public class IconPaths
{
public string AppIcon { get; set; } = "/Resources/Images/Logo/logo.png";
}
}
And then I bind it in the MainWindow XAML file like that:
<Image Source="{Binding AppIcon}"/>
The IconPaths class is in the only namespace I have right now so I doubt It's because of namespaces.
And would there be any benefits of using a ResourceDictionary instead of this class?
c# wpf data-binding
add a comment |
When I try to bind an image path, which is initially a string, to an image the image doesn't show up, why is that?
I have created a separate file other than my main class which will contain only image paths, that's because I have a lot of icons and I want their paths to be stored somewhere.
namespace Application.Images
{
public class IconPaths
{
public string AppIcon { get; set; } = "/Resources/Images/Logo/logo.png";
}
}
And then I bind it in the MainWindow XAML file like that:
<Image Source="{Binding AppIcon}"/>
The IconPaths class is in the only namespace I have right now so I doubt It's because of namespaces.
And would there be any benefits of using a ResourceDictionary instead of this class?
c# wpf data-binding
What is DataContext for yourMainWindow.xaml
? Binding is done relatively to your data context, not namespace. You can try something like this:Source="{x:Static local:IconPaths.AppIcon}"
– Jan Palas
Nov 24 '18 at 19:49
I actually saw that I have set my DataContext to WindowViewModel which is my main class. How do I add another DataContext? Won't it override my current DataContext use and restrain me from the functionality in WindowViewModel?
– John Davis
Nov 24 '18 at 19:55
I would use staticresource and a resourcedictionary. Simple iconography is best done usinv geometries in resources. You use one as data for a path.
– Andy
Nov 24 '18 at 20:07
And still, it caught my interest, how do I add another DataContext?
– John Davis
Nov 24 '18 at 20:27
add a comment |
When I try to bind an image path, which is initially a string, to an image the image doesn't show up, why is that?
I have created a separate file other than my main class which will contain only image paths, that's because I have a lot of icons and I want their paths to be stored somewhere.
namespace Application.Images
{
public class IconPaths
{
public string AppIcon { get; set; } = "/Resources/Images/Logo/logo.png";
}
}
And then I bind it in the MainWindow XAML file like that:
<Image Source="{Binding AppIcon}"/>
The IconPaths class is in the only namespace I have right now so I doubt It's because of namespaces.
And would there be any benefits of using a ResourceDictionary instead of this class?
c# wpf data-binding
When I try to bind an image path, which is initially a string, to an image the image doesn't show up, why is that?
I have created a separate file other than my main class which will contain only image paths, that's because I have a lot of icons and I want their paths to be stored somewhere.
namespace Application.Images
{
public class IconPaths
{
public string AppIcon { get; set; } = "/Resources/Images/Logo/logo.png";
}
}
And then I bind it in the MainWindow XAML file like that:
<Image Source="{Binding AppIcon}"/>
The IconPaths class is in the only namespace I have right now so I doubt It's because of namespaces.
And would there be any benefits of using a ResourceDictionary instead of this class?
c# wpf data-binding
c# wpf data-binding
asked Nov 24 '18 at 19:42
John DavisJohn Davis
62
62
What is DataContext for yourMainWindow.xaml
? Binding is done relatively to your data context, not namespace. You can try something like this:Source="{x:Static local:IconPaths.AppIcon}"
– Jan Palas
Nov 24 '18 at 19:49
I actually saw that I have set my DataContext to WindowViewModel which is my main class. How do I add another DataContext? Won't it override my current DataContext use and restrain me from the functionality in WindowViewModel?
– John Davis
Nov 24 '18 at 19:55
I would use staticresource and a resourcedictionary. Simple iconography is best done usinv geometries in resources. You use one as data for a path.
– Andy
Nov 24 '18 at 20:07
And still, it caught my interest, how do I add another DataContext?
– John Davis
Nov 24 '18 at 20:27
add a comment |
What is DataContext for yourMainWindow.xaml
? Binding is done relatively to your data context, not namespace. You can try something like this:Source="{x:Static local:IconPaths.AppIcon}"
– Jan Palas
Nov 24 '18 at 19:49
I actually saw that I have set my DataContext to WindowViewModel which is my main class. How do I add another DataContext? Won't it override my current DataContext use and restrain me from the functionality in WindowViewModel?
– John Davis
Nov 24 '18 at 19:55
I would use staticresource and a resourcedictionary. Simple iconography is best done usinv geometries in resources. You use one as data for a path.
– Andy
Nov 24 '18 at 20:07
And still, it caught my interest, how do I add another DataContext?
– John Davis
Nov 24 '18 at 20:27
What is DataContext for your
MainWindow.xaml
? Binding is done relatively to your data context, not namespace. You can try something like this: Source="{x:Static local:IconPaths.AppIcon}"
– Jan Palas
Nov 24 '18 at 19:49
What is DataContext for your
MainWindow.xaml
? Binding is done relatively to your data context, not namespace. You can try something like this: Source="{x:Static local:IconPaths.AppIcon}"
– Jan Palas
Nov 24 '18 at 19:49
I actually saw that I have set my DataContext to WindowViewModel which is my main class. How do I add another DataContext? Won't it override my current DataContext use and restrain me from the functionality in WindowViewModel?
– John Davis
Nov 24 '18 at 19:55
I actually saw that I have set my DataContext to WindowViewModel which is my main class. How do I add another DataContext? Won't it override my current DataContext use and restrain me from the functionality in WindowViewModel?
– John Davis
Nov 24 '18 at 19:55
I would use staticresource and a resourcedictionary. Simple iconography is best done usinv geometries in resources. You use one as data for a path.
– Andy
Nov 24 '18 at 20:07
I would use staticresource and a resourcedictionary. Simple iconography is best done usinv geometries in resources. You use one as data for a path.
– Andy
Nov 24 '18 at 20:07
And still, it caught my interest, how do I add another DataContext?
– John Davis
Nov 24 '18 at 20:27
And still, it caught my interest, how do I add another DataContext?
– John Davis
Nov 24 '18 at 20:27
add a comment |
1 Answer
1
active
oldest
votes
For me personally, I prefer Resource Dictionaries, because It's XAML and It's meant to deal with the UI. What I do is try to write as much XAML as I can for such font end aspects, while I leave C# code and classes for the logic part.
Again, it's up to you, purely depends on what coding and project structuring convention you are following. There might be performance benefits when it comes to very large files, but I cannot say for sure.
add a comment |
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%2f53461752%2fwpf-why-does-image-source-binding-not-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
For me personally, I prefer Resource Dictionaries, because It's XAML and It's meant to deal with the UI. What I do is try to write as much XAML as I can for such font end aspects, while I leave C# code and classes for the logic part.
Again, it's up to you, purely depends on what coding and project structuring convention you are following. There might be performance benefits when it comes to very large files, but I cannot say for sure.
add a comment |
For me personally, I prefer Resource Dictionaries, because It's XAML and It's meant to deal with the UI. What I do is try to write as much XAML as I can for such font end aspects, while I leave C# code and classes for the logic part.
Again, it's up to you, purely depends on what coding and project structuring convention you are following. There might be performance benefits when it comes to very large files, but I cannot say for sure.
add a comment |
For me personally, I prefer Resource Dictionaries, because It's XAML and It's meant to deal with the UI. What I do is try to write as much XAML as I can for such font end aspects, while I leave C# code and classes for the logic part.
Again, it's up to you, purely depends on what coding and project structuring convention you are following. There might be performance benefits when it comes to very large files, but I cannot say for sure.
For me personally, I prefer Resource Dictionaries, because It's XAML and It's meant to deal with the UI. What I do is try to write as much XAML as I can for such font end aspects, while I leave C# code and classes for the logic part.
Again, it's up to you, purely depends on what coding and project structuring convention you are following. There might be performance benefits when it comes to very large files, but I cannot say for sure.
answered Nov 24 '18 at 19:49
Christian PanovChristian Panov
437
437
add a comment |
add a comment |
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.
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%2f53461752%2fwpf-why-does-image-source-binding-not-work%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
What is DataContext for your
MainWindow.xaml
? Binding is done relatively to your data context, not namespace. You can try something like this:Source="{x:Static local:IconPaths.AppIcon}"
– Jan Palas
Nov 24 '18 at 19:49
I actually saw that I have set my DataContext to WindowViewModel which is my main class. How do I add another DataContext? Won't it override my current DataContext use and restrain me from the functionality in WindowViewModel?
– John Davis
Nov 24 '18 at 19:55
I would use staticresource and a resourcedictionary. Simple iconography is best done usinv geometries in resources. You use one as data for a path.
– Andy
Nov 24 '18 at 20:07
And still, it caught my interest, how do I add another DataContext?
– John Davis
Nov 24 '18 at 20:27