c# - 从类上的 void 获取字符串值无法正确输出

标签 c# class data-binding listbox

我有一个类,稍后我将其作为列表框上的 ItemsSource Hook 。该列表框有一个项目,该项目有一个图像绑定(bind)“{Binding LocalImage}”。问题是,当 Item 从 LocalImage 获取值时,会返回一个不应该返回的空值。 void doesImageExistLocally 工作完美,并已在另一个项目上进行了测试。

从 Main void 中单独调用它确实可以正确输出图像的路径,因此它不是 void 上的问题,而是类/列表框项获取值的问题。还需要注意的是,字符串 Image 也被正确分配。 Console.WriteLine(Logic.doesImageExistLocally("imageurl"));

public class Test {

    private string _LocalImage;

    public string Image {get; set:}
    public string LocalImage
    {
        get { return _LocalImage; }
        set { _LocalImage = doesImageExistLocally(Image); }
     }
}

编辑:

Test test = new Test();
test.Image = "URL";
doesImageExistLocally(Image); // output = Images/name-of-picture.jpg
Console.WriteLine(test.LocalImage); // output = null;

无效代码:

public static string doesImageExistLocally(string imageURL)
    {
        Uri uri = new Uri(imageURL);

        string path = "Images/" + System.IO.Path.GetFileName(uri.LocalPath);
        Console.WriteLine(path);
        if (!File.Exists(path))
        {
            using (WebClient client = new WebClient())
            {
                client.DownloadFile(new Uri(imageURL), path);
            }
        }
        return path;

    }

最佳答案

在 Test 类中,LocalImage 从未被设置。使用此代码:

public class Test {

    private string _LocalImage;
    private string _Image;
    public string Image
    {
        get
        {
            return _Image;
        }
        set
        {
            _Image = value;
            _LocalImage = doesImageExistLocally(value);
        }
    }
    public string LocalImage
    {
         get { return _LocalImage; }
    }
 }

我认为如果你这样修改你的代码,它将是正确的。

Test test = new Test();
test.Image = "URL";
test.LocalImage = "URL"; // output = Images/name-of-picture.jpg
Console.WriteLine(test.LocalImage); // output = null;

关于c# - 从类上的 void 获取字符串值无法正确输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65853321/

相关文章:

c# - 在非 IE 浏览器中禁用 ASP.NET ImageButton

java - 父子类之间的设计建议?

data-binding - Grails 将请求参数绑定(bind)到枚举

asp.net - 如何添加一个空的第一个条目做 <asp :DropDownList>?

c# - C#中的随机数问题

c# - 为什么我从 C# 应用程序调用 VB6 ActiveX DLL 失败并返回 "No such interface supported"?

c# - WPF中如何直接在位图(BitmapSource、WriteableBitmap)上绘制?

c++ - 无法在静态类函数中递增静态变量

javascript - 从 Django 模型创建 javascript 对象(类)

javascript - Angular.js 变量绑定(bind)