C# wpf自定义控件本地属性绑定

C# wpf自定义控件本地属性绑定,c#,wpf,binding,properties,controls,C#,Wpf,Binding,Properties,Controls,我有一个名为-RoomAndPersonsConditionItem的自定义控件,其中我有属性室: public static readonly DependencyProperty roomProperty = DependencyProperty.Register("Room", typeof(RoomData), typeof(RoomAndPersonsAccommodationItem), new FrameworkPropertyMetadata(null));

我有一个名为-RoomAndPersonsConditionItem的自定义控件,其中我有属性室:

 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; }
        }
RoomAndPersonSoncationItem的设置与ListView上的DataTemplate类似:

<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>
这是带有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>
更新2

问题解决了
上述来源是正确的。错误的结果来自于我在建造完成之前检查了房间的属性。当我检查结果后,一切正常!谢谢大家!

试试这个,这个属性有一个属性和一个依赖属性:

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); }
}

您也可以从绑定中删除“路径”,这是不必要的。

设置
Mode=TwoWay
也是不必要的
Room=“{Binding}”
就足够了。您可以将答案标记为已解决,或者在找到自己的解决方案时回答自己的答案。
private ReservationData reservation = null;
//Methods
private void fillForms()
        {
            //Logic
                    RoomsListView.ItemsSource = reservation.Rooms;
            //Logic
        }
<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>
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); }
        }
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); }
}