2
私はバインディング:は、異なるソースに複数のプロパティをバインド
祖先のDataContextの:
detailsPanel.DataContext = client
のItemsControl:
<ItemsControl
x:Name="PlayersItemsControl"
ItemsSource="{Binding Peers}"
ItemsPanel="{StaticResource PlayersItemsControlPanel}"
ItemTemplate="{StaticResource PlayersItemsControlTemplate}">
</ItemsControl>
itemstemplate
<DataTemplate x:Key="PlayersItemsControlTemplate" >
<Button Content="{Binding Name}" IsEnabled="{Binding InConversation,Converter={StaticResource MyStatusToButtonEnableConverter}}"> </Button>
</DataTemplate>
項目ソース:
public class Client : INotifyPropertyChanged
{
// the itemscontrol items source
private ObservableCollection<Player> peers;
public ObservableCollection<Player> Peers
{
get
{
if (peers == null)
peers = new ObservableCollection<Player>();
return peers;
}
}
// the property i wan't to bind to IsEnabled Property of the Button
private bool inConversation;
public bool InConversation
{
get {return inConversation; }
set
{
inConversation = value;
if(PropertyChanged != null)
PropertyChanged(this,new PropertyChangedEventArgs("InConversation"));
}
}
}
項目がピアコレクションにバインドされ、各テキストブロックは、現在のピアの名前にバインドされています。
問題は、私はクライアントの別のプロパティに各ボタン(アイテム)をバインドする必要があるということです。 コレクションの現在のピアに加えて、 "InConversation"。
どのようにこのように結合を行うことができますか?