我和一位朋友正在創建我們自己的Skype「ish」應用程序,作爲一個有趣的小項目。ListView多重綁定?
我們現在已經達到了要創建聯繫人列表的程度。
我們的每一個接觸的包含此:
<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
- ContactNameList
- ContactTitleList
- ContactStatusList
現在,我知道如何做一個簡單的綁定,但我不知道如何將3個綁定到一個ListView。我已經看到了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是如何接觸會顯示出來。我真正想要的就是文本和日食對應他們的列表。
編輯:@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;
}
它真的需要有3名名單?爲什麼你沒有1個聯繫人列表,聯繫人是一個有姓名,職位和地位的班級? – Jose
沒有必要,我只是不知道如何創建一個單一的列表作爲你解釋的一個:) –
你必須創建1個可觀察的集合像這樣'ObservableCollection contacts = new ObservableCollection ();'。你將不得不使用3個字符串來定義你的Contact類:'name','title'和'status'。 –
Jose