如何检索绑定到ObservableCollection
的{{1}}中的对象?我想在ListView
中显示这些对象的属性/字段。我正在使用MVVM设计。 ListView
现在正在显示绑定对象的命名空间,只是为了澄清绑定是否有效。
XAML:
ListView
背后的代码:
<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>
我的ViewModel:
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) };
}
}
我真的无法找到一个很好的方法(我对ViewModel本身中每个可能的属性/字段都不感兴趣) - 我希望你们能帮忙!
答案 0 :(得分:2)
你尝试了什么? 因为如果为该ListView定义一个ItemTemplate,你只需绑定到这些属性:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text={"Binding Name, Mode=TwoWay"} />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>