我有一個wpf格式的treeview
,該格式最初可以正確綁定,但樹中某些checking and unchecking
項的組合導致binding
未能成功保存。wpf樹視圖中的複選框值不等於綁定屬性的值
這是屬性;
const string HAS_ACCESS = "HasAccess";
public bool? HasAccess
{
get
{
return hasAccess;
}
set
{
if (hasAccess == value) return;
if(!AllowUpdate(value)) return;
//Debug.WriteLine("{0} tried to set hasAccess to a value of {1} D = {2}, A = {3}, u = {4}, AllowChange = {5}, I = {6}", myPermission.Name, value, descendantChanged, ancestorChanged, userInstigatedChange, AllowUpdate(value), isInitialising);
ResetChangeBools();
hasAccess = value;
Debug.WriteLine("HasAccess = {0}", HasAccess);
isInitialising = false;
RaisePropertyChanged(HAS_ACCESS);
}
}
這是xaml;
<CheckBox Grid.Column="0" Grid.Row="1"
IsThreeState="true"
Content="{Binding MyPermission.Name}"
Click="CheckBox_Clicked"
IsChecked="{Binding HasAccess, Mode=OneWay}"/>
我必須強調,將顯示HasAccess
正確的值當treeview
是initialised
而且更改大部分的時間做更新,但如果我檢查的treeview
子項(即正確地檢查其父級), uncheck
其父(正確地取消選中其子)然後重新檢查家長不再檢查的初始子元素。我包含Debug.writeline來檢查值是否正確設置,儘管我可以在Output窗口中看到正確的值,但它們不顯示在複選框中。任何幫助將不勝感激。
好吧,非常酷:-) –