你好我創建一個應用程序的車在ListView
顯示汽車的名單,我希望用戶能夠點擊列表項,並將其顯示在一個TextBox TextBox
。目前它的工作方式,但它使用ToString方法,我根本不能格式化,我想在每條記錄的末尾添加一個新行,因此每個屬性都在自己的行上,並且通常可以更好地控制它顯示。有沒有更好的方式做到這一點,然後我做了什麼。生病包括我所有的代碼,所以你擁有一切。 我通常在提問時非常平均,所以我的問題詢問和代碼的任何意見將不勝感激。 謝謝..如何從一個ListView顯示信息爲使用WPF
class BaseCarClass
{
private string carBrand;
private string carModel;
private int yearModel;
private int carPrice;
//CarBrand Property
public string CarBrand
{
get
{
return carBrand;
}//end get
set
{
carBrand = value;
}//end set
}//end property CarBrand
public string CarModel
{
get
{
return carModel;
}
set
{
carModel = value;
}
}
public int YearModel
{
get
{
return yearModel;
}
set
{
yearModel = value;
}
}
public int CarPrice
{
get
{
return carPrice;
}
set
{
carPrice = value;
}
}
//BaseClass Constructor
public BaseCarClass(string car_brand, string car_model, int year_model, int car_price)
{
CarBrand = car_brand;
CarModel = car_model;
YearModel = year_model;
CarPrice = car_price;
}//end base class constructor
public string space { get { return " "; } }
public string GetCar
{
get
{
return CarBrand+space+CarModel;
}
}
public override string ToString()
{
return GetCar;
}
}
<Window x:Class="Assignment4ITC521.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Assignment4ITC521"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="550">
<DockPanel>
<Grid>
<ListView Margin="10,10,152,10" Name="carListDisplay" SelectionChanged="carListDisplay_SelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn Header="Brand" Width="120" DisplayMemberBinding="{Binding CarBrand}" />
<GridViewColumn Header="Model" Width="150" DisplayMemberBinding="{Binding CarModel}" />
<GridViewColumn Header="Year" Width="50" DisplayMemberBinding="{Binding YearModel}" />
<GridViewColumn Header="Price $" Width="50" DisplayMemberBinding="{Binding CarPrice}" />
</GridView>
</ListView.View>
</ListView>
<TextBox x:Name="textBox1" HorizontalAlignment="Left" Height="299" Margin="395,10,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="137" />
</Grid>
</DockPanel>
</Window>
public partial class MainWindow : Window
{
private List<BaseCarClass> myCars = new List<BaseCarClass>();
public MainWindow()
{
InitializeComponent();
myCars.Add(new BaseCarClass("Ford", "Falcon", 1999, 2000));
myCars.Add(new BaseCarClass("Holden", "Berina", 2008, 5000));
myCars.Add(new BaseCarClass("Ford", "Mustang", 1967, 25000));
//this.DataContext = myCars;
carListDisplay.ItemsSource = myCars;
}
private void carListDisplay_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string item = carListDisplay.Items[carListDisplay.SelectedIndex].ToString();
textBox1.Text = (item);
}
}
哇,這是如此明顯,不能相信我錯過了它。你只能把屬性放在ToString重寫中,或者我可以如何將所有的格式放入ToString中,而不使用單獨的屬性來創建空格/換行符? – user3488019
沒有限制,您只能放置屬性。你可以(如果你願意)把所有的格式化邏輯放在那裏。 – asb
我最後所做的只是返回string.Format(「所有的細節和格式在這裏」)'感謝您的幫助,但我只是看了太久後錯過了簡單的東西。 – user3488019