WPF - Why does image source binding not work?












-2















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?










share|improve this question























  • 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
















-2















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?










share|improve this question























  • 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














-2












-2








-2








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?










share|improve this question














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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 24 '18 at 19:42









John DavisJohn Davis

62




62













  • 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



















  • 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

















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












1 Answer
1






active

oldest

votes


















-2














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.






share|improve this answer























    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    -2














    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.






    share|improve this answer




























      -2














      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.






      share|improve this answer


























        -2












        -2








        -2







        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.






        share|improve this answer













        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 24 '18 at 19:49









        Christian PanovChristian Panov

        437




        437






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

            Calculate evaluation metrics using cross_val_predict sklearn

            Insert data from modal to MySQL (multiple modal on website)