Это потому, что вы повторно использовали одно и то же представление для обоих комбинированных списков. Все, что вы сделали, это установили sh новых переменных, указывающих на один и тот же объект в памяти. Сначала у вас было это:
Then you made another variable, same object:
Dim xDv_Parents As DataView = MyVar_Dt_AllAccounts.DefaultView
Then you set a rowfilter:
xDv_Parents.RowFilter = "AccType='Main'"
Then you told one combo to use it, so now you have a combo pointing to it too:
Call xCLS.MyCodes_CboFill_Dv(Me.CboAccParent, "AccName", "AccID", xDv_Parents)
Then you made another variable, also pointing to it, and overwrote the rowfilter you just set:
Dim xDv_Final As DataView = MyVar_Dt_AllAccounts.DefaultView
xDv_Final.RowFilter = "AccType='Final'"
Finally you attached another combo to the same view:
Call xCLS.MyCodes_CboFill_Dv(Me.CboAccFinal, "AccName", "AccID", xDv_Final)
введите описание изображения здесь
Именно так работают переменные в языках программирования net. Если вы не используете New
, вы просто присоединяете новые переменные к существующим экземплярам объектов
То, что вы должны были сделать, было:
Dim xDv_Parents = new DataView(MyVar_Dt_AllAccounts)
xDv_Parents.RowFilter = "AccType='Main'"
xCLS.MyCodes_CboFill_Dv(Me.CboAccParent, "AccName", "AccID", xDv_Parents)
Dim xDv_Final = New DataView(MyVar_Dt_AllAccounts.DefaultView)
xDv_Final.RowFilter = "AccType='Final'"
xCLS.MyCodes_CboFill_Dv(Me.CboAccFinal, "AccName", "AccID", xDv_Final)