अपडेट नहीं कर रहा है मेरे पास ListBox
है जो BindingList
से जुड़ा हुआ है। BindingList
तब बनाया गया है जब कोई तृतीय पक्ष एप्लिकेशन किसी ईवेंट को उठाता है। मैं BindingList
सही ढंग से बाध्य होने देख सकता हूं ... लेकिन ListBox
में कुछ भी प्रवेश नहीं करता है। मैंने अपने कुछ कस्टम प्रकारों के साथ सटीक उसी तर्क का उपयोग किया है और यह आमतौर पर बहुत अच्छी तरह से काम करता है।बाइंडिंगलिस्ट बाउंड लिस्टबॉक्स
फार्म वर्ग
private Facade.ControlFacade _controlFacade;
public UavControlForm()
{
InitializeComponent();
_controlFacade = new UavController.Facade.ControlFacade();
UpdateEntityListBox();
}
private void UpdateEntityListBox()
{
lsbEntities.DataSource = _controlFacade.GetEntityTally();
lsbEntities.DisplayMember = "InstanceName";
}
फसाड वर्ग
private Scenario _scenario;
public ControlFacade()
{
_scenario = new Scenario();
}
public BindingList<AgStkObject> GetEntityTally()
{
BindingList<AgStkObject> entityTally = _scenario.EntityTally;
return entityTally;
}
परिदृश्य वर्ग
private static BindingList<IAgStkObject> _entityTally = new BindingList<AgStkObject>();
public Scenario()
{
if (UtilStk.CheckThatStkIsAvailable())
{
UtilStk.StkRoot.OnStkObjectAdded += new IAgStkObjectRootEvents_OnStkObjectAddedEventHandler(TallyScenarioObjects);
UtilStk.StkRoot.OnStkObjectDeleted += new IAgStkObjectRootEvents_OnStkObjectDeletedEventHandler(TallyScenarioObjects);
}
}
private void TallyScenarioObjects(object sender)
{
List<AgStkObject> tallyOfStkObjects = UtilStk.GetRunningTallyOfAllStkObjects();
List<string> stkObjectNames = UtilStk.GetInstanceNamesOfStkObjects(tallyOfStkObjects);
foreach (string stkObjectName in stkObjectNames)
{
if (!SearchFlightUavTallyByName(stkObjectName))
{
if (!SearchLoiterUavTallyByName(stkObjectName))
{
if (!SearchEntityTallyByName(stkObjectName))
{
int i = stkObjectNames.IndexOf(stkObjectName);
_entityTally.Add(tallyOfStkObjects[i]);
}
}
}
}
}
मैं ई देख सकते हैं तीसरे पक्ष के आवेदन से आग लगाना - यह वांछित के रूप में _entityList
को एक इकाई जोड़ता है, लेकिन lsbEntities
में कुछ भी नहीं जोड़ा गया है - क्यों?
धन्यवाद! मैं बस इसे आजमाने की कोशिश कर रहा हूँ। मुझे यकीन नहीं है कि क्यों - मेरे कोड में - एक अलग धागा का उपयोग किया जा रहा है? मैं स्पष्ट रूप से उपयोग के लिए परिभाषित नहीं करता हूं। क्या आप मुझे बता सकते हैं क्यों? – wulfgarpro
न केवल आपके उदाहरणों ने मुझे WinForms में धागे की प्रकृति को समझने में मदद की है; मैंने थ्रेड पूलिंग, प्रतिनिधि और इवेंट हैंडलिंग के बारे में सीखा है। आपके समय और प्रयास के लिए बहुत बहुत धन्यवाद। इस आधार पर अब मैं सामान्य रूप से सी # और सॉफ्टवेयर विकास की व्यापक समझ प्राप्त कर सकता हूं। – wulfgarpro
@WulfgarPro - कुछ प्रकारों पर (बाध्यकारी स्रोत शायद?) एक ऐसी घटना है जो बाध्यकारी विफल होने पर उठाई जाती है। यदि आप इस घटना की सदस्यता लेते हैं तो आप त्रुटि संदेशों के बारे में बहुत अधिक जानकारी प्राप्त कर सकते हैं जो अन्यथा चुप हैं। –