Ich habe eine Schnittstellen:WPF: Wie bindet man an Schnittstelle, die von einer anderen Schnittstelle erbt?
public interface IDocument : IEntity
{
string FileName { get; set; }
...
}
public interface IEntity : IComparable
{
int Id { get; set; }
...
}
Ich möchte als folgendes binden:
<ItemsControl Grid.Row="0" ItemsSource="{Binding SelectedEventPhotoList}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Name="SelectedListView">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" Columns="3"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=(documents:IDocument.FileName)}"/>
<TextBlock Text="{Binding Path=(documents:IDocument.Id)}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Die SelectedEventPhotoList Modell anzuzeigen platziert ist wie folgend:
public List<IDocument> SelectedEventPhotoList
{
get { return _selectedEventPhotoList; }
set
{
if (Equals(value, _selectedEventPhotoList))
return;
_selectedEventPhotoList = value;
RaisePropertyChanged(() => SelectedEventPhotoList);
}
}
der erste Bindungs zu Dateiname funktioniert gut, aber die zweite nicht.
Wie funktioniert es?
@Clemens Sind das nicht [Bindungen an explizite Schnittstellenimplementierungen] (http://stackoverflow.com/a/1827579/5246145)? – 3615
@ 3615: Ich habe es getan. – tesicg
Ich habe den ursprünglichen Post aktualisiert. Bitte schau es dir an. – tesicg