我和一位朋友正在制作我们自己的Skype" ish"应用程序作为一个有趣的小项目。
我们现在已经达到了我们想要创建联系人列表的程度。
我们的每个联系人都包含以下内容:
<ListView Grid.Column="0" x:Name="ContactList" BorderBrush="#FF252525" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Hidden" Grid.Row="0" Grid.RowSpan="3" ItemsSource="{Binding Path=ContactNameList}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Grid>
<TextBlock Text="NameOfContact" Padding="7,5,0,10" FontSize="16" />
<TextBlock Text="JobTitle" Padding="7,25,0,0" FontStyle="Italic" Foreground="#FF8D8D8D" />
<Ellipse Fill="#FF00FF00" Width="14" Height="14" Margin="132,18,14,18" HorizontalAlignment="Right" />
</Grid>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但问题是,我们有3个observablecollections
现在,我知道如何进行简单的绑定,但我不知道如何对一个ListView进行3次绑定。我已经看过一些Multibindings的例子但是却找不到一个显示如何设置源(应该显示的数据)的例子。
所以问题是,我怎么能让模板看起来像这样? (理论上的约束当然!):
<ListView Grid.Column="0" x:Name="ContactList" BorderBrush="#FF252525" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Hidden" Grid.Row="0" Grid.RowSpan="3" ItemsSource="{Binding Path=ContactNameList,ContactTitleList,ContactStatusList}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Grid>
<TextBlock Text="{Binding Path=ContactNameList}" Padding="7,5,0,10" FontSize="16" />
<TextBlock Text="{Binding Path=ContactTitleList}" Padding="7,25,0,0" FontStyle="Italic" Foreground="#FF8D8D8D" />
<Ellipse Fill="#FF00FF00" Width="14" Height="14" Margin="132,18,14,18" HorizontalAlignment="Right" />
</Grid>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
对于任何想知道的人,this是联系人将如何出现的。我真正想要的是文本和eclipse与他们的列表相对应的机会。
编辑:致@Kirenenko
public class ContactsClass : INotifyPropertyChanged {
public ContactsClass() {
}
public ObservableCollection<ContactsClass> contacts = new ObservableCollection<ContactsClass>();
string[] Name = new string[2];
string[] Title = new string[2];
string[] Status = new string[2];
public event PropertyChangedEventHandler PropertyChanged;
}
答案 0 :(得分:0)
我相信你应该拥有的不是三个列表,而是一个列表,其中包含用户在其节点中的所有相关信息。
像:
<users>
<user>
<ContactName></ContactName>
<ContactTitle></ContactTitle>
<ContactStatus></ContactStatus>
</user>
</users>