小编Ray*_*ich的帖子

根据TreeView选择绑定的类型显示UserControl

我在WPF中以类似于Windows资源管理器的方式制作应用程序,左侧是TreeView,右侧是窗格.

我希望右窗格的内容根据TreeView中所选元素的类型进行更改.

例如,假设树视图中的顶层包含类"A"的对象,如果展开"A"对象,您将看到"B"对象列表作为"A"对象的子对象.

如果选择"A"对象,我希望右窗格显示"A"的用户控件,如果选择"B",我希望右窗格显示"B"的用户控件.

我目前的工作是:

  • 使用每种类型一个HierarchialDataTemplate设置TreeView
  • 将所有UserControl添加到右侧窗格,但已折叠
  • 在TreeView上实现SelectedItemChanged,并将相应的usercontrol设置为visible,将其他控件设置为collapsed.

    但是,我确信有更好/更优雅的方式根据选择绑定的类型切换视图,可能通过更多地使用数据绑定...任何想法?

  • wpf

    9
    推荐指数
    2
    解决办法
    2189
    查看次数

    iCloud和NSFileWrapper:在"设置"中显示为2个不同的文件

    我有一个使用基于NSFileWrapper的UIDocument的应用程序.我的文件包装器是一个名为"XXX.cp"的目录,有两个子文件"photo.data"和"photo.metadata".它似乎可以保存和加载文档,但是当我转到Settings\Manage Storage\Unknown时,子文件会单独列出:

    设置

    我期待它显示"XXX.cp"而不是这两个子文件.我想我已经正确设置并导出文件UTI:

    UTI UTI出口

    我认为我正在创建文件包装器(特别是因为它读/写正常):

    - (void)encodeObject:(id<NSCoding>)object toWrappers:(NSMutableDictionary *)wrappers preferredFilename:(NSString *)preferredFilename {    
        @autoreleasepool {                
            NSMutableData * data = [NSMutableData data];    
            NSKeyedArchiver * archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];    
            [archiver encodeObject:object forKey:@"data"];    
            [archiver finishEncoding];   
            NSFileWrapper * wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:data];    
            [wrappers setObject:wrapper forKey:preferredFilename];    
        }    
    }        
    
    - (id)contentsForType:(NSString *)typeName error:(NSError *__autoreleasing *)outError {        
        if (self.captionedPhotoMetadata == nil || self.captionedPhoto == nil) {    
            *outError = [[NSError alloc] initWithDomain:CaptionedPhotoErrorDomain code:CaptionedPhotoInvalidDocument userInfo:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Invalid document!", @""), NSLocalizedDescriptionKey, nil]];    
            return nil;        
        }    
        NSMutableDictionary * wrappers = [NSMutableDictionary dictionary]; …
    Run Code Online (Sandbox Code Playgroud)

    nsfilewrapper ios icloud

    9
    推荐指数
    1
    解决办法
    1904
    查看次数

    如何像内置的Calc应用程序一样进行方向旋转?

    我正在尝试制作一个处理方向/旋转的应用程序,类似于内置Calc应用程序的方式.

    如果您检查该应用程序,则在纵向模式下有一个普通的计算器,如果您旋转到横向模式,则左侧会显示其他按钮.

    我无法通过设置自动调整大小掩码来弄清楚如何做到这一点.问题是"正常"计算器视图在纵向模式下是320px宽,但实际上在横向模式下缩小到大约240px以适应其他控件.

    我见过像AlternateViews示例应用程序这样的示例,它们有两个不同的视图控制器(一个用于纵向,一个用于横向),但它们似乎不像Calc应用那样为视图之间的过渡设置动画.

    我也尝试在willAnimateSecondHalfOfRotationFromInterfaceOrientation中手动设置视图的帧,但它看起来似乎并不"非常正确",而且我也不确定它如何与autoresize掩码一起使用.

    任何想法如何做到这一点?谢谢!

    iphone

    5
    推荐指数
    1
    解决办法
    252
    查看次数

    标签 统计

    icloud ×1

    ios ×1

    iphone ×1

    nsfilewrapper ×1

    wpf ×1