0

私のコードは、ボタンを含む ListBoxes を動的に追加します。ボタンは別のボタンを動的に追加します。うーん・・・期待ですね。コードが機能しません。

これが私のコードです:

public Button createElements(string nameOfElement)
    {
        if (nameOfElement.Contains("Floor"))
        {
            // code creating Button
            return floorButton;
        }
        else if (nameOfElement.Contains("Sound"))
        {
            // code creating Button
            return soundButton;
        }
        else if (nameOfElement.Contains("Add"))
        {
            // code creating Button
            return addButton;
        }
        return null;
    }

private ListBox addNewListBox(ListBox targetElement, int ex)
    {
        // vytvori ListBox do hlavniho ListBoxu
        ListBox elementListBox = new ListBox();

        elementListBox.Name = "elementListBox" + indexY;
        elementListBox.VerticalAlignment = VerticalAlignment.Top;
        elementListBox.ItemsPanel = (ItemsPanelTemplate)XamlReader.Parse("<ItemsPanelTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><StackPanel Orientation=\"Horizontal\"/></ItemsPanelTemplate>");

        if (ex == 1) 
        {
            targetElement.Items.Remove(addFloor);
            targetElement.Items.Add(elementListBox);
            elementListBox.Items.Add(createElements("Floor"));
            elementListBox.Items.Add(createElements("Sound"));
            elementListBox.Items.Add(createElements("Add"));
            targetElement.Items.Add(addFloor);
            indexY++;
            indexX = 0;
        }
        return elementListBox;
    }

ここに最終関数の詳細があります。

private void putElements(ListBox targetElement, Button targetObject)
    {
        targetElement.Items.Add(targetObject);
        // there's problem
        MessageBox.Show("targetElement: ", targetElement.Name);
        MessageBox.Show("targetObject", targetObject.Name);
    }

この関数を呼び出すクリック イベント:

putElements(addNewListBox(mainListBox, 0), createElements("Sound"));

MessageBoxes は、最後の関数でオブジェクトの名前を出力します。オブジェクトは正しいですが、この行:

targetElement.Items.Add(targetObject);

問題があります - この行は何もしません..

手伝ってくれてありがとう!!

4

1 に答える 1

0

ex-value が 1 の場合は新しい ListBox を追加するだけですmainListBoxが、あなたの場合は 0 です。

したがって、新しい ListBox ( targetElementin putElements-method) は決して追加されmainListBoxないため、表示されません。それが機能しないように見える理由targetElement.Items.Add(targetObject);です。

于 2013-09-12T09:38:49.417 に答える