我正在为我的应用编写应用更新程序.确保我在设备上安装了apk后,这就是我在应用程序中执行的操作,我正在尝试更新:
Intent promptInstall = new Intent(Intent.ACTION_VIEW);
File f = new File(apkLocation);
promptInstall.setDataAndType(Uri.fromFile(f), "application/vnd.android.package-archive");
_context.startActivity(promptInstall);
Run Code Online (Sandbox Code Playgroud)
这将启动我的安装程序,显示应用程序权限,然后我可以单击"安装".但是从这里应用程序只是关闭,我得不到任何消息(我会期望对话框告诉我安装成功,让我选择按"关闭"或"打开").它只是进入设备的主屏幕,恕不另行通知.
另外,当我手动打开它时,应用程序确实已更新.如何让安装程序按预期完成?是否有任何意图设定?
在写这篇文章的时候,我想知道这种情况发生的原因是当前应用程序只是在设备上被覆盖,从而关闭它并且程度上没有得到意图的结果,因为它的源被杀死了?
我正在使用MOQ模拟带有预期返回列表的方法调用.我的方法返回一个列表,但我希望每次调用该方法时,mock都会创建一个新列表.到目前为止我做了什么:
List<Correlation> expected = new List<Correlation> { new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } };
Mock<IRPLValidator> selfMock = new Mock<IRPLValidator>();
selfMock.Setup(f => f.Validate()).Returns(expected);
Run Code Online (Sandbox Code Playgroud)
我想要实现的是每次调用方法时模拟返回一个新列表.我试过这个但是没有用:
selfMock.Setup(f => f.Validate()).Returns(new List<Correlation>{ new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } });
Run Code Online (Sandbox Code Playgroud)
由于这没有用,我想也许回调是我的问题的答案,但我没有找到重新初始化我的列表的任何正确的例子.有什么建议?
你可能想知道我为什么每次都需要一个新的列表,问题是我在不同的对象类型上调用方法在列表中进行一些更改,具体取决于对象类型.因为每次调用方法时mock都会给我相同的列表,所以我总是在内存中修改相同的对象,因此我无法跟踪我正在进行的更改.
提前致谢!
我目前正在为我的数据网格使用行验证.我试图在行无效时更改行的外观.到目前为止我的代码在视觉上报告错误:
<DataGrid.RowValidationErrorTemplate>
<ControlTemplate>
<Grid Margin="0,-2,0,-2" Background="Red" HorizontalAlignment="Stretch"
ToolTip="{Binding RelativeSource={RelativeSource
FindAncestor, AncestorType={x:Type DataGridRow}},
Path=(Validation.Errors)[0].ErrorContent}">
<TextBlock Text="!" FontSize="{TemplateBinding FontSize}"
FontWeight="Bold" Foreground="White"
HorizontalAlignment="Center" />
</Grid>
</ControlTemplate>
</DataGrid.RowValidationErrorTemplate>
Run Code Online (Sandbox Code Playgroud)
看来这只会影响我的标题行.有没有办法可以处理这个RowValidationErrorTemplate来修改行外观?我想把整行的背景变成红色或类似的东西.
有任何想法吗?如果我需要为此特定问题提供更多代码,请告诉我.提前致谢!
我正在尝试使用MVVM模式处理数据网格.问题是每当我将绑定到SelectedItem的VM属性更改为null时,View都不会"取消选择"当前选定的项目.这是我在xaml中的绑定:
<DataGrid Grid.Column="0" Grid.Row="0"
ItemsSource="{Binding Path=Users}"
AutoGenerateColumns="False"
CanUserAddRows="False"
IsReadOnly="True"
SelectedItem="{Binding Path=SelectedUser, Mode=TwoWay}">
Run Code Online (Sandbox Code Playgroud)
SelectedItem绑定从视图工作到VM,因此在SelectedUser属性中我总是拥有所选对象.问题是在VM中我正在做一些有时将SelectedUser属性更改为null的东西,所以我希望datagrid也取消选择该行.相反,它仍然处于选中状态,如果我尝试单击同一行,则该属性不会更新.如果我单击任何其他行,属性将按预期更改.
有没有办法让datagrid取消选择,如果它的binded属性设置为null?此外,我正在寻找一个MVVM解决方案,因为我不想编写代码.我可以通过编写代码解决这个问题,所以不要浪费时间提供这样的解决方案:)
le:这是我在VM中的属性:
public RPLUser SelectedUser
{
get
{
return selectedUser;
}
set
{
selectedUser = value;
OnPropertyChanged("SelectedUser");
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!