我有一个列表框我想显示信息,我从文本文件中引入变量并将它们分配给字符串。我希望最终结果如下:
"Make: " [Make] "\t" "Model: " [Model]
"Price: " [Price] "\t" "Mileage: " [Mileage]
我已经阅读了最好的选项,我现在正在使用ToString方法,但是我已经读过XAML中的模板会是更好的选择。
我的问题:如何在XAML中格式化数据模板以显示上述信息并引入所需的变量?
答案 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>
集合,其中包含MyList
,Make
等属性。
根据您的结构,您可能需要考虑Model
(如列表但有列)而不是列表。