0

我的大多数绑定工作正常,但一个只是显示:Test.Models.PersonModel

我想绑定的属性(“名称”)在这个类中。

这是我绑定的部分:

<ItemsControl ItemsSource="{Binding Persons}">
    <StackPanel Margin="24, 4, 4, 4"
                Orientation="Horizontal">   
       <TextBlock FontSize="{StaticResource PhoneFontSizeExtraLarge}"
                  FontFamily="{StaticResource PhoneFontFamilyLight}"
                  Text="{Binding Name}" 
                  VerticalAlignment="Center"/>
    </StackPanel>
</ItemsControl>

Persons 是 PersonModel 类型的 OberservableCollection。这里是 PersonModel 的代码:

public class PersonModel : INotifyPropertyChanged
{
    private string _name = null;

    public string Name
    {
        get { return _name; }
        set { _name = value; NotifyPropertyChanged("Name"); }
    }
    private BitmapImage _profilpicture = null;

    public BitmapImage ProfilPicture
    {
        get { return _profilpicture; }
        set { _profilpicture = value; NotifyPropertyChanged("ProfilPicture"); }
    }

    #region PropertyChanged
    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(String propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (null != handler)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    #endregion
}
4

1 回答 1

0

您应该使用ItemTemplatemsdn):

<ItemsControl ItemsSource="{Binding Persons}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel  Margin="24, 4, 4, 4"  
                         Orientation="Horizontal">
                 <TextBlock FontSize="{StaticResource PhoneFontSizeExtraLarge}"
                            FontFamily="{StaticResource PhoneFontFamilyLight}"
                            Text="{Binding Name}" 
                            VerticalAlignment="Center"/>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
于 2013-10-26T17:32:13.993 回答