小编Kev*_*lia的帖子

从Code Behind调用命令

所以我一直在四处寻找并且无法确切地知道如何做到这一点.我正在使用MVVM创建用户控件,并希望在'Loaded'事件上运行命令.我意识到这需要一些代码,但我无法弄清楚需要什么.该命令位于ViewModel中,它被设置为视图的datacontext,但我不确定如何路由它,所以我可以从加载的事件后面的代码中调用它.基本上我想要的是这样的......

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
    //Call command from viewmodel
}
Run Code Online (Sandbox Code Playgroud)

环顾四周,我无法在任何地方找到这种语法.我是否需要先在xaml中绑定命令才能引用它?我注意到用户控件中的命令绑定选项不会让你像按钮那样绑定命令......

<UserControl.CommandBindings>
    <CommandBinding Command="{Binding MyCommand}" /> <!-- Throws compile error -->
</UserControl.CommandBindings>
Run Code Online (Sandbox Code Playgroud)

我确信有一个简单的方法可以做到这一点,但我不能为我的生活弄清楚.

c# data-binding wpf xaml command

63
推荐指数
2
解决办法
7万
查看次数

在HTTP错误期间以任何方式获取响应主体?

我正在点击偶尔会抛出HTTP 403错误的API,响应机构可以以json的形式提供一些额外的信息,但是对于我的生活,我似乎无法从Alamofire中获取信息响应对象.如果我通过chrome访问API,我会在开发人员工具中看到这些信息.这是我的代码:

Alamofire.request(mutableURLRequest).validate().responseJSON() {
    (response) in
    switch response.result {
        case .Success(let data):
            if let jsonResult = data as? NSDictionary {
                completion(jsonResult, error: nil)
            } else if let jsonArray = data as? NSArray {
                let jsonResult = ["array" : jsonArray]
                completion(jsonResult, error: nil)
            }
        case .Failure(let error):
            //error tells me 403
            //response.result.data can't be cast to NSDictionary or NSArray like
            //the successful cases, how do I get the response body?
    }
Run Code Online (Sandbox Code Playgroud)

我几乎查询了附加到响应的每个对象,但是在HTTP错误的情况下它似乎没有给我回复响应主体.有没有解决方法或我在这里缺少的东西?

httpresponse http-status-code-403 ios swift alamofire

39
推荐指数
2
解决办法
2万
查看次数

使用使用空格的字符串文字保持代码结构

所以有点奇怪的问题我无法提出搜索条件.如果我有一个多行字符串在我的程序文字,反正是有让我的代码一致的缩进不会增加不必要的空白,以我的字符串文字?

例如:

if (true)
{
    if (!false)
    {
        //Some indented code;
        stringLiteral = string.format(
@"This is a really long string literal
I don't want it to have whitespace at 
the beginning of each line, so I have
to break the indentation of my program
I also have vars here 
{0}
{1}
{2}",
var1, var2, var3);
    }
}
Run Code Online (Sandbox Code Playgroud)

它可能只是我的OCD说话,但无论如何都要保持我的程序的缩进而不向字符串添加不需要的空格,或者必须逐行构建它(真正的字符串是一个超长的string.format,即20~行里面有12个变量)?

c# indentation string-literals

24
推荐指数
3
解决办法
6718
查看次数

在强制滚动后,cellForItemAtIndexPath返回nil以使其可见

所以我试图编写一些代码来将集合视图滚动到某个索引,然后拉入对单元格的引用并执行一些逻辑.但是我注意到如果在滚动之前该单元格当前不可见,则cellForItemAtIndexPath调用将返回nil,导致其余逻辑失败.

[_myView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:index 
                                                     inSection:0] 
                atScrollPosition:UICollectionViewScrollPositionTop
                        animated:NO];

//Tried with and without this line, thinking maybe this would trigger a redraw
[_myView reloadData];

//returns nil if cell was off-screen before scroll
UICollectionViewCell *cell = 
  [_myView cellForItemAtIndexPath:
    [NSIndexPath indexPathForItem:index inSection:0]];
Run Code Online (Sandbox Code Playgroud)

是否有一些其他的方法我必须调用,cellForItemAtIndexPath以便为一个单元格返回一些东西突然出现在它前面的滚动的结果?

objective-c ios uicollectionview ios7

17
推荐指数
3
解决办法
9373
查看次数

选项卡上的文本框SelectAll但不是鼠标单击

所以假设我有一个带有几个文本框的WPF表单,如果你选中文本框并且它已经包含了一些内容,我想选择该框中的所有文本,这样输入就会删除该文本.如果您在框中单击鼠标,则可能意味着您想要在某处更改字母,因此在这种情况下不要突出显示所有字母.看起来很容易,但到目前为止,我找不到一个好的解决方案.到目前为止,我的工作非常接近工作,但并不完美.

<Style x:Key="TextBoxStyle" TargetType="TextBox">
    <EventSetter Event="GotKeyboardFocus" Handler="EventSetter_OnHandler" />
</Style>
Run Code Online (Sandbox Code Playgroud)

private void EventSetter_OnHandler(object sender, RoutedEventArgs e)
{
    TextBox txt = sender as TextBox;
    if (txt != null) txt.SelectAll();
}
Run Code Online (Sandbox Code Playgroud)

因此,当盒子获得键盘焦点时,它会选择全部,因此在文本框中选项卡可以完美地选择所有文本.但是,如果鼠标单击此方法也会被调用,这也会突出显示文本,但是单击然后将光标放在鼠标单击后的位置.所以在功能上它是完美的,但它仍然困扰我,当鼠标点击时它闪烁选择一切.有没有更好的方法,或者在我的活动中进行某种检查,以便知道我通过鼠标点击而不是标签获得了键盘焦点?

c# wpf xaml textbox focus

16
推荐指数
1
解决办法
8855
查看次数

如何在iOS7中使用淡入淡出效果切换状态栏(如照片应用)?

我想要点击状态栏的可见性,就像在照片应用中一样.

在iOS 7之前,此代码运行良好:

-(void)setStatusBarIsHidden:(BOOL)statusBarIsHidden {

    _statusBarIsHidden = statusBarIsHidden;

    if (statusBarIsHidden == YES) {

        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];


    }else{

        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];

    }

}
Run Code Online (Sandbox Code Playgroud)

但我无法让它在iOS 7中运行.我发现的所有答案都只提供永久隐藏栏但不切换的建议.

然而,自照片以来必须有一种方法.

objective-c statusbar ios7

13
推荐指数
4
解决办法
2万
查看次数

从ArrayList <Long>到Intent的Sane方式

我正在编写一个应用程序,通过json从服务器中提取多个long,然后将该列表从一个活动传递到另一个活动.基本骨架如下所示:

public void onResponse(Map result)
{
    ArrayList handles= (ArrayList)result.get("fileHandles");

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    intent.putExtra("handles", handles);
}
Run Code Online (Sandbox Code Playgroud)

所以,第一个问题变得很明显,对于putExtra的唯一方法是putIntegerArrayListExtra,putStringArrayListExtra,putCharSequenceArrayListExtra,和putParcelableArrayListExtra.Thinking Long可能是可以分配的,我错了它不起作用(即使我使用ArrayList<Long>).接下来我以为我只是通过了一个很长的[],但是我认为没有直接的转换可以接受ArrayList<Long>long [] intent.putExtra.这是我最终得到的解决方案:

ArrayList handles= (ArrayList)result.get("fileHandles");
long [] handleArray = new long[handles.size()];
for (int i = 0; i < handles.size(); i++)
{
    handleArray[i] = Long.parseLong(handles.get(i).toString());
}
Run Code Online (Sandbox Code Playgroud)

显然这对我来说似乎有点荒谬,但我尝试的其他所有转换似乎都因某种原因而抱怨.在考虑到这一点之前,我已经考虑重新思考我的序列化以解决问题,但我发现ArrayList<Long>从活动到活动的过程可能非常困难.有没有更明显的解决方案我错过了?

java android arraylist android-intent long-integer

13
推荐指数
1
解决办法
3305
查看次数

'在super.init初始化self'之前在方法调用中使用self,不能通过方法调用初始化属性

我很好奇,无论如何,在init方法中调用一个方法来设置类的实例属性.基本上我只有一个子类UIView的类,在init中添加一些子视图,其中一些子视图是类的实例变量.

class MyView: UIView {
    var collectionView: UICollectionView

    convenience init () {
        self.init(frame:CGRectZero)
    }

    override init (frame : CGRect) {
        super.init(frame : frame)

        addSubviews()
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        addSubviews()
    }

    func addSubviews (){
        self.collectionView = UICollectionView()

    }
}
Run Code Online (Sandbox Code Playgroud)

现在问题是我在初始化类内部属性之前不能调用super init(属性'self.collectionView'在super.init调用时没有被初始化),但是我也无法调用我的自定义方法来初始化那些变量super.init,因为它不能在初始化之前使用self.我意识到我可以使实例变量可选,但它似乎不太优雅,因为我知道它将始终被初始化(还有更多,这只是一个简化版本).有没有办法在不制作所有实例变量选项的情况下完成此操作?

编辑:

我想最终我的问题是为什么swift dis-allow在调用super.init之前调用一个方法?有什么区别:

override init (frame : CGRect) {
    addSubviews()
    super.init(frame : frame)
}

final func addSubviews (){
    self.collectionView = UICollectionView()
}
Run Code Online (Sandbox Code Playgroud)

override init (frame : CGRect) {
    self.collectionView = UICollectionView()
    super.init(frame : frame)
}
Run Code Online (Sandbox Code Playgroud)

init instance-variables swift

13
推荐指数
1
解决办法
1万
查看次数

从代码发送电子邮件时,"5.7.1客户端没有权限"错误

所以我有这个非常基本的程序,试图发送电子邮件,但我一直在

信箱不可用.服务器响应为:5.7.1客户端无权作为此发件人发送

这是我的计划

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient("Server", 25);
    client.UseDefaultCredentials = false;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = new NetworkCredential("UserName", "Password");
    client.Send(new MailMessage("kevin@hopethisworks.com","Recipient"));
}
Run Code Online (Sandbox Code Playgroud)

我知道凭据有效,如果我使用相同的数据运行SMTP Test Tool 3.0一切都很好.

在此输入图像描述

以下是在Exchange服务器上为我的IP设置的接收连接器的一些屏幕截图

在此输入图像描述

在此输入图像描述

任何人都有任何想法会在我的代码中导致此错误,但不是在简单的SMTP测试工具中?我在某处遗漏了某种身份验证选项吗?我有四重检查所有信息在两个地方都是正确和相同的,它在工具中工作,但在代码中不起作用.

c# email exchange-server exchange-server-2010

12
推荐指数
1
解决办法
6万
查看次数

@interface中的实例变量; 标题与实现

在标题中声明私有实例变量与在实现中声明它之间有什么区别吗?

在TestObj.h中

@interface TestObj : NSObject
{
    int test;
}
@end
Run Code Online (Sandbox Code Playgroud)

在TestObj.m中的vs

@interface TestObj()
{
    int test;
}
@end
Run Code Online (Sandbox Code Playgroud)

两者似乎都等同于我,在标题和实现中声明实例变量之间是否存在任何实际差异,如果不是首选?在@interface实现文件中似乎只是一个方法来声明私有属性,它有之外的任何其他目的?

objective-c instance-variables header-files

12
推荐指数
2
解决办法
3030
查看次数