制作数据模板 - XAML

时间:2017-02-28 15:58:39

标签: c# xaml

我有一个列表框我想显示信息,我从文本文件中引入变量并将它们分配给字符串。我希望最终结果如下:

"Make: " [Make] "\t" "Model: " [Model] 
"Price: " [Price] "\t" "Mileage: " [Mileage]

我已经阅读了最好的选项,我现在正在使用ToString方法,但是我已经读过XAML中的模板会是更好的选择。

我的问题:如何在XAML中格式化数据模板以显示上述信息并引入所需的变量?

1 个答案:

答案 0 :(得分:1)

它看起来像这样:

#include <iostream>

class World {
public:
    int Info() { return 0; }
};
//An abstract base class
class IGame {
public:
    virtual ~IGame() = 0 {}
    virtual int FPS() = 0;
};

//One specific type of game
class Game : public IGame {
public:
    int FPS() { return 0; }
};


class Camera {
public:
    Camera(Game * game, World * world) : game(game), world(world) {
    }

    void Move() {
        //actually move first then ...
        Draw();
    }

    void Draw() {
        //This will show us what needs to be public in the other classes
        std::cout << world->Info() << '\n';
        if (game)
            std::cout << game->FPS() << '\n';

    }

private:
    IGame* game;
    World* world;
};

int main() {
    World world;
    Game game;
    Camera camera(&game, &world);
    camera.Move();
}

假设您的文件中有一个可观察的<ListBox ItemsSource="{Binding MyList}"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock> <Run Text="Make: "/> <Run Text="{Binding Make}"/> <Run Text="Model: "/> <Run Text="{Binding Model}"/> <Run Text="Price:" /> <Run Text="{Binding Price}"/> <Run Text="Mileage:" /> <Run Text="{Binding Mileage}"/> </TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 集合,其中包含MyListMake等属性。

根据您的结构,您可能需要考虑Model(如列表但有列)而不是列表。