Вы могли попытаться обработать события ComboBox's TextInput или PreviewTextInput, делание текста ищет себя, выбирая самый соответствующий объект, и устанавливая "e. Обработанный = верный". Просто мысль.Надеюсь, это поможет!
редактирование:
Это работает на отдельный символ (т.е. если Вы введете букву "j", то это выберет первый объект, который содержит "j" или "J"), но я уверен, что существует способ сделать это с Вашим управлением.Приятного отдыха!
private void MyComboBox_PreviewTextInput(object sender, TextCompositionEventArgs e) {
foreach (ComboBoxItem i in MyComboBox.Items) {
if (i.Content.ToString().ToUpper().Contains(e.Text.ToUpper())) {
MyComboBox.SelectedItem = i;
break;
}
}
e.Handled = true;
}
This looks a little bizarre:
Chunk::
Chunk* GetNextFilledChunk()
{
Is that a typo? Should it be:
Chunk* Chunk::GetNextFilledChunk()
{
? It looks like you're accidentally defining GetNextFilledChunk
to be a plain function rather than a member of Chunk
.
Во-первых, как уже упоминалось другими, определение функции неверно. Кроме того, дружественная функция не требуется, и спецификаторы доступа здесь не имеют значения, поскольку вы предполагаете, что функция должна быть частью класса и, очевидно, не принимается компилятором из-за опечаток.
Что касается прямого ответа на ваш вопрос : Как может общедоступная статическая функция-член получить доступ к частным переменным-членам экземпляра?
Не может; только нестатические функции-члены могут обращаться как к статическим, так и к нестатическим переменным, а статические функции-члены могут обращаться только к статическим переменным-членам. Причина: Для вызова статической функции не требуется создание экземпляра объекта и, следовательно, нет this указателя на статическую функцию-член и, следовательно, в свою очередь, нет нестатических переменных-членов для доступ.
I think singleton pattern fits very well for this. You can access any kind of member functions without worrying if you are accessing it from static functions or not...
The problem is in your definition of GetNextFilledChunk. As written in the CPP file you have declared a non-member function which is preceeded by a badly formed label. It will not line up with the member function in the header.
The correct signature is as follows
Chunk*
Chunk::GetNextFilledChunk() {
...
}
You're defining your member function wrong. It should be defined like this:
Chunk * Chunk::GetNextFilledChunk()
{
...
}
That the definition happened to compile fine was due to a quirk with the language: class names get inserted within their own namespaces, so Chunk::Chunk
is equivalent to Chunk
, so you were defining a global function by accident.