我有named- RoomAndPersonsAccommodationItem和內部自定義控件我有產權房:WPF自定義控件本地地產結合
public static readonly DependencyProperty roomProperty =
DependencyProperty.Register("Room", typeof(RoomData),
typeof(RoomAndPersonsAccommodationItem), new FrameworkPropertyMetadata(null));
public RoomData RoomProperty
{
get { return GetValue(roomProperty) as RoomData; }
set { SetValue(roomProperty, value); }
}
private RoomData room = null;
public RoomData Room
{
get { return room; }
set { room = value; }
}
RoomAndPersonsAccommodationItem設置喜歡的DataTemplate上的ListView:
<ListView Name="RoomsListView" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Controls:RoomAndPersonsAccommodationItem Room="{Binding Path=., Mode=TwoWay}" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在課堂上哪裏是以上ListView- RoomsListView我有這樣的代碼:
RoomsListView.ItemsSource = reservation.Rooms;
//reservation.Rooms is List<RoomData>
p這裏是:
<Controls:RoomAndPersonsAccommodationItem Room="{Binding Path=., Mode=TwoWay}" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
我想從ListView上的ItemSource綁定Room屬性到房間對象,但我收到null。 有誰知道我錯在哪裏?也許在這裏:Room =「{Binding Path =。,Mode = TwoWay}」或DependencyProperty聲明?
感謝 馬丁
UPDATE:
還不行......結果始終爲空。我嘗試了很多選項來綁定Tag或DataContext,但沒有任何反應。我想這個問題不在DependencyProperty中。它是介於結合我的事情...... 這再次驗證碼:
private ReservationData reservation = null;
//Methods
private void fillForms()
{
//Logic
RoomsListView.ItemsSource = reservation.Rooms;
//Logic
}
這是DataTemplate中ListView控件:
<ListView Name="RoomsListView" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Controls:RoomAndPersonsAccommodationItem
Room="{Binding}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在RoomAndPersonsAccommodationItem
而且DependencyProperty的:
public static readonly DependencyProperty RoomProperty =
DependencyProperty.Register(
"Room", typeof(RoomData), typeof(RoomAndPersonsAccommodationItem),
new FrameworkPropertyMetadata(null));
public RoomData Room
{
get { return (RoomData)GetValue(RoomProperty); }
set {
SetValue(RoomProperty, value); }
}
UPDATE 2
已解決 上面的來源是正確的。錯誤的結果來自於我在構造函數完成之前檢查了房間屬性。當我檢查構造函數後的結果一切正常!謝謝!
如果您找到自己的解決方案,您可以將答案標記爲已解決或回答自己的答案。 – Bart 2015-04-01 06:49:48