Как отобразить имя из подобъекта в выпадающем списке?

== проверяет ссылки на объекты, .equals() проверяет строковые значения.

Иногда кажется, что == сравнивает значения, потому что Java делает некоторые закулисные вещи, чтобы убедиться, что одинаковые строки в строке являются одним и тем же объектом.

Для Например:

String fooString1 = new String("foo");
String fooString2 = new String("foo");

// Evaluates to false
fooString1 == fooString2;

// Evaluates to true
fooString1.equals(fooString2);

// Evaluates to true, because Java uses the same object
"bar" == "bar";

Но будьте осторожны с нулями!

== обрабатывает строки null в порядке, но вызов .equals() из пустой строки приведет к исключению:

String nullString1 = null;
String nullString2 = null;

// Evaluates to true
System.out.print(nullString1 == nullString2);

// Throws a NullPointerException
System.out.print(nullString1.equals(nullString2));

Итак, если вы знаете, что fooString1 может но не менее очевидно, что он проверяет значение null (из Java 7):

System.out.print(Objects.equals(fooString1, "bar"));
0
задан Robin de Klerk 18 January 2019 в 06:48
поделиться

2 ответа

Класс статьи:

public class Article : INotifyPropertyChanged
{
    public ObservableCollection<ArticleLocation> locations;
    public string Location { 
        get => location; 
        set
        {
            if (location == null || !location.Equals(value))
            {
                 location = value;
                 RaisePropertyChanged("Location");
            }
        }
    }
}

Класс статьиLocation:

public class ArticleLocation : INotifyPropertyChanged
{
    private string location;

    public string Location { 
        get => location; 
        set
        {
            if (location == null || !location.Equals(value))
            {
                location = value;
                RaisePropertyChanged("Location");
            }
        }
    }
}

в вашем классе xaml.cs:

public MainWindow()
{
    InitializeComponent();
    Article article = new Article();
    this.DataContext = article;
}
0
ответ дан J.B.D 18 January 2019 в 06:48
поделиться

Я обнаружил проблему, свойства Locations и SelectedLocation были созданы как внутренние из-за того, что класс ArticleLocation не был общедоступным и поэтому не мог быть доступен для представления XAML.

Изменение класса ArticleLocation на public и свойств в моем классе Article на public, которые они начали показывать в поле со списком.

0
ответ дан Robin de Klerk 18 January 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: