Взято из http://forum.jquery.com/topic/multiple-versions-of-jquery-on-the-same-page :
$
и jQuery
принадлежат версииX. $
и jQuery
принадлежат версииY, плюс _$
и _jQuery
принадлежат версииX. my_jQuery = jQuery.noConflict(true);
- теперь $
и jQuery
принадлежат версииX, _$
и _jQuery
, вероятно, null, а my_jQuery
- версияY. Мне никогда не удавалось заставить это работать, выполняя итерацию вперед через список errorEvent
в моем автоматизированном тестовом коде, но он РАБОТАЕТ, когда итерация назад через список errorEvent
.
Телефонный код:
for (int i = eventViewer.GetErrorEventsCount() - 1; i >= 0; i--)
{
bResult = eventViewer.SelectMainEventViaErrorEvent(i);
if (!bResult)
{
break;
}
System.Threading.Thread.Sleep(2000);
}
Контрольный код:
public bool SelectMainEventViaErrorEvent(int eventIdx)
{
bool bSuccess = false;
DisableToolTips(true);
errorEvents.Select(eventIdx);
errorEvents.SelectedItem.DoubleClick();
System.Threading.Thread.Sleep(1000);
log.Info($"SelectMainEventViaErrorEvent({eventIdx}) selected error event = {errorEvents.SelectedItemText}");
log.Info($"SelectMainEventViaErrorEvent({eventIdx}) selected main event = {mainEvents.SelectedItemText}");
if (errorEvents.SelectedItemText == mainEvents.SelectedItemText)
{
bSuccess = true;
}
return bSuccess;
}
Сравнение с обычным текстом - плохая идея, так как «Текст»! = «Текст». То, что вы можете использовать в вашем случае, это свойства DisplayMember
и ValueMember
.
Я продемонстрирую это для вас с помощью ручного заполнения списков, но вы делаете это из базы данных или как вы это делаете.
Прежде всего создайте class
, в котором будут храниться ваши значения и их идентификаторы. Я обычно создаю его следующим образом (поэтому я могу использовать этот класс позже для чего-то другого)
public class Int_String
{
public int _int { get; set; } // Important to be declared like properties and not like variables
public string _string { get; set; }
}
Теперь давайте заполним наш список следующим образом:
public YourForm()
{
List<Int_String> list = new List<Int_String>();
list.Add(new Int_String { _int = 1, _string = "Some text" }); // I am populating it manually but you will populate it from DB or somewhere else
list.Add(new Int_String { _int = 2, _string = "Some other text" });
list.Add(new Int_String { _int = 3, _string = "One more text" });
// Now when we have list we need to bind it to our listbox.
// IMPORTANT!!!!!
// Display member and Value member properties SHOULD be able to be added before and after assigning datasource to control (like combobox) BUT for some reason on listbox it only works when you assign it AFTER you bind your datasource to listbox.
// If you ever work with other controls and use these values, ALWAYS declare display member and value member BEFORE you bind datasource. Why? For now let's just say it is much faster but explanation is for other question
myListBox1.DataSource = list;
myListBox1.DisplayMember = "_string"; // When you start typing .DisplayMember, you will not get that property in recommendation since it is hidden so do not think there is not that property there.
myListBox1.ValueMember = "_int"; // Same as above
}
Теперь, когда вы заполните Например, список и второй список с одинаковыми идентификаторами можно просто сделать if(listbox1.SelectedValue == listbox2.SelectedValue)
и сравнить их, даже если их текст не равен, но идентификатор равен.
БОНУС: Также то, что вы можете сделать, это расширить класс следующим образом:
public class Int_String
{
public int _int { get; set; }
public string _string { get; set; }
public string SomethingOther = "AsD";
public bool IsTrue()
{
return true;
}
}
затем связать его таким же образом и сделать это:
Int_String item = listbox1.SelectedItem as Int_String;
bool check = item.IsTrue();
MessageBox.Show(item.SomethingOther);
Таким образом, в основном вы связываете весь класс для каждого элемента в списке отобразите для пользователя одну из переменных (в нашем случае _string
), задайте ValueMember
другую уникальную переменную, чтобы можно было легко выполнять поиск по всему списку и, когда необходимо, получить целый класс из этого элемента. [1117 ]