我很困惑這可能是微不足道的事情。我有LayoutGroup
DevExpresses
類的一個子我自定義屬性(不應有任何區別IMO):自定義WPF綁定不更新列表框選擇
public class ExpandableLayoutGroup : LayoutGroup
{
public static readonly DependencyProperty IsExpandedProperty = DependencyProperty.Register("IsExpanded", typeof(Boolean), typeof(ExpandableLayoutGroup));
public Boolean IsExpanded
{
get { return (Boolean) GetValue(IsExpandedProperty); }
set
{
expandCheckBox.IsChecked = value;
SetValue(IsExpandedProperty, value);
}
}
}
然後,我必須XAML結合(含2項在這個時候)列表框稱爲listStates
。
<ExpandableLayoutGroup x:Name="groupTool" IsExpanded="{Binding SelectedValue.IsTool, ElementName=listStates}" DataContext="{Binding Tool}" Header="Tool" View="GroupBox" />
對象列表結合listStates同時包含屬性(簡單):
public class State
{
public Boolean IsItemTool { get; private set; }
public Tool Tool { get; private set; }
}
我失去了一些東西明顯?因爲我期望當我更改列表框選擇(單個)時,它也會更新組中的IsExpanded
屬性。我有更多的子屬性的工具綁定(由DataContext="{Binding Tool}"
明顯)和那些更新很好。因此,DataContext
在列表框選擇上正確更改。除了這一個屬性IsExpanded
(這應該展開/摺疊佈局組)。
我做錯了什麼,以及如何做到這一點,當列表框發生變化時,IsExpanded
綁定被輪詢從IsTool
獲取值,並將設置它(取決於選擇)。
我.. ..被定罪。我有回調設置,但它從來沒有被調用,因爲屬性中的其他代碼。現在它真的被召喚了。我從來不知道該屬性必須是空的(SetValue/GetValue除外)。現在我明白了。讓我進行一些測試,然後我會接受你的答案。 – SmartK8
它的工作,完美。謝謝。 – SmartK8