0
如何檢索綁定爲ListView
的ObservableCollection
中的對象?我想在ListView
中顯示這些對象的屬性/字段。我正在使用MVVM設計。 ListView
現在顯示綁定對象的名稱空間,只是爲了闡明綁定的作用。從列表視圖中檢索綁定對象的屬性/字段XAML
的XAML:
<Page
x:Class="Test.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Test"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:Test.ViewModels"
mc:Ignorable="d" d:DataContext="{d:DesignInstance vm:TestViewModel}">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Width="400" Height="400">
<Border BorderBrush="Gray" BorderThickness="2">
<ListView x:Name="TestList" ItemsSource="{Binding TestClasses}" Foreground="Black" Height="300">
<!-- Code to bind TestClasses properties/fields goes here -->
</ListView>
</Border>
</Grid>
</Page>
背後的代碼:
public sealed partial class MainPage : Page
{
private readonly TestViewModel _viewModel;
public MainPage()
{
_viewModel = new TestViewModel();
DataContext = _viewModel;
InitializeComponent();
}
}
我的視圖模型:
class TestViewModel : BaseViewModel
{
private ObservableCollection<TestClass> _testClasses;
public ObservableCollection<TestClass> TestClasses
{
get { return _testClasses; }
private set
{
_testClasses = value;
OnPropertyChanged();
}
}
public TestViewModel()
{
TestClasses = new ObservableCollection<TestClass> { new TestClass("test1,", 1), new TestClass("test2", 2) };
}
}
最後,而我想顯示的屬性/領域類:
[Bindable]
public class TestClass
{
public TestClass(String name, int id)
{
Name = name
Id = id;
}
public String Name { get; set; }
public int Id { get; set; }
}
我真的無法弄清楚一個很好的方法來做到這一點(我沒有興趣在ViewModel本身中綁定每個可能的屬性/字段) - 我希望你們可以幫忙!
始終以顯而易見的選擇.. wauw,甚至沒有嘗試過的,因爲它沒有自動提示我綁定到名爲「Name」的變量 - 在網絡上嘗試了許多其他複雜的建議。 非常感謝我的幫助,讓我看到了顯而易見的方式!歡呼聲,標記爲答案。 – zniwalla