0
부울 isInEditMode
이 참일 때만 ListBoxItem
을 표시하려고합니다.코드에서 변수 및 변환기에 바인딩
SurfaceListBoxItem slbi = new SurfaceListBoxItem();
Binding visibilityBinding = new Binding("Visibility");
visibilityBinding.Source = isInEditMode;
visibilityBinding.Converter = new BoolToVisibility();
visibilityBinding.NotifyOnTargetUpdated = true;
slbi.SetBinding(SurfaceListBoxItem.VisibilityProperty, visibilityBinding);
myListBox.Items.Add(slbi);
그러나, 컨버터 isInEditMode이 변경 될 때 트리거되지 않았다
private bool isInEditMode
{
get { return Convert.ToBoolean(GetValue(IsInEditMode_Property)); }
set { SetValue(IsInEditMode_Property, value); }
}
public static readonly DependencyProperty IsInEditMode_Property = DependencyProperty.Register("isInEditMode", typeof(bool), typeof(MainWindow), new PropertyMetadata(null));
이 내가 ListBoxItem
를 추가 곳이다 : 이것은 내 변수입니다. 무엇이 잘못 되었습니까?
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (System.Convert.ToBoolean(value) == true)
return System.Windows.Visibility.Visible;
else
return System.Windows.Visibility.Collapsed;
}
나는 빠른 XAML에서 테스트 않았고이 그래도 작동 :
이<Grid Visibility="{Binding Path=isInEditMode, ElementName=myMainWindow, Converter={StaticResource BoolToVisibility}, NotifyOnTargetUpdated=True}" />
밖으로의 상자있다'BooleanToVisibilityConverter' : http://msdn.microsoft.com/en-us/library/system.windows.controls. booleanantovisibilityconverter % 28v = vs.110 % 29.aspx – Dennis
정보를 제공해 주셔서 감사합니다! 나는 그것을 바꿨지만 여전히 작동하지 않는다. 나는 'visibilityBinding.Source = isInEditMode;'에 뭔가 문제가 있다고 생각한다. 바인딩이 아니다. –