我打算在我的一个项目中使用Fody.PropertyChanged,它是通过NuGet正确添加的:
Install-Package PropertyChanged.Fody
Run Code Online (Sandbox Code Playgroud)
我意识到,这是在错误的项目中,所以我使用了uninstall命令:
Uninstall-Package PropertyChanged.Fody
Run Code Online (Sandbox Code Playgroud)
之后我将它添加到正确的项目中.
现在,当我尝试构建我的解决方案时,我在初始项目中得到以下错误,该错误不应该安装Fody:
Fody:你似乎没有配置任何织布工.尝试将Fody nuget包添加到您的项目中.请查看 http://nuget.org/packages?q=fody获取可用软件包列表.
在项目中没有引用Fody,我从packages.config文件中删除了Fody引用,并且没有XML文件.
我还该怎么办?
我打算将本地 HTML 文件加载到 Xamarin Forms WebView 中。
我已将 HTML 文件添加到该assets/HTML文件夹中,并将其“构建操作”设置为 AndroidAsset。
我已经实现了基本 URL 查找器界面:
public class BaseUrl_Android:IBaseUrl
{
public string Get()
{
return "file:///android_asset/";
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在共享可移植代码中使用此文件来加载文件:
string baseUrl = DependencyService.Get<IBaseUrl>().Get();
string url = baseUrl + "HTML/local.html";
myWebView.Source = url;
Run Code Online (Sandbox Code Playgroud)
我还尝试了自定义 WebViewRenderer,并使用了以下代码:
protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
// lets get a reference to the native control
var webView = (global::Android.Webkit.WebView)Control;
// do whatever you want to the WebView here!
webView.LoadUrl(DependencyService.Get<IBaseUrl>().Get()+"HTML/local.html");
webView.SetWebViewClient(new …Run Code Online (Sandbox Code Playgroud) 它开始于一个Android手机,简单的创建语句在assets/migrations文件夹中的文件中(我使用名为ActiveAndroid的第三方库,并且2年它工作正常 - 我没有改变任何事情):
CREATE TABLE IF NOT EXISTS Car (Brand TEXT);
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
04-07 15:31:36.683 15738-15738/? E/SQLiteLog? (21) API called with NULL prepared statement
04-07 15:31:36.683 15738-15738/? E/SQLiteLog? (21) misuse at line 63243 of [00bb9c9ce4]
java.lang.RuntimeException: Unable to create application com.activeandroid.app.Application: android.database.sqlite.SQLiteException: not an error (code 0)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4394)
at android.app.ActivityThread.access$1300(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: not an error (code 0) …Run Code Online (Sandbox Code Playgroud) 我在实体框架代码优先项目中有以下删除方法:
var selectedID = selectedGroup.ID;
var users = (from user in db.Users
where user.Group_ID == selectedID
select user);
db.Users.RemoveRange(users);
db.Groups.Attach(selectedGroup);
db.Groups.Remove(selectedGroup);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
这些是模型:
public class Group
{
[Key]
public Guid ID { get; set; }
[Required]
public Guid Branch { get; set; }
}
public class User
{
[Key]
public Guid ID { get; set; }
[Required]
public Guid Group_ID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当db.SaveChanges()被调用时,我得到一个异常:
DELETE 语句与 REFERENCE 约束“FK_Users_Groups”冲突。冲突发生在数据库“UserDB”、表“dbo.Users”、“Group_ID”列中。该语句已终止。
似乎以相反(随机)顺序调用 Remove 方法。如果我在之后添加另一个 ,它(显然)可以正常工作。db.SaveChanges()RemoveRange()
如何强制删除顺序?
我的Bootstrapper中有以下代码:
private SimpleContainer container;
protected override void Configure()
{
container = new SimpleContainer();
container.Singleton<IEventAggregator, EventAggregator>();
container.PerRequest<InitialViewModel>();
}
protected override object GetInstance(Type service, string key)
{
return container.GetInstance(service, key);
}
protected override IEnumerable<object> GetAllInstances(Type service)
{
return container.GetAllInstances(service);
}
protected override void BuildUp(object instance)
{
container.BuildUp(instance);
}
Run Code Online (Sandbox Code Playgroud)
在OnStartup方法中,我调用该DisplayRooViewFor方法:
protected override void OnStartup(object sender, StartupEventArgs e)
{
DisplayRootViewFor<InitialViewModel>();
}
Run Code Online (Sandbox Code Playgroud)
这是InitialViewModel:
private IEventAggregator eventAggregator;
public InitialViewModel(IEventAggregator ea)
{
eventAggregator = ea;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它抛出了NullReferenceException:
Caliburn.Micro.Platform.dll中出现"System.NullReferenceException"类型的异常,但未在用户代码中处理
我检查了CM的源代码并使用相同的代码来测试它:
protected override void OnStartup(object …Run Code Online (Sandbox Code Playgroud) 我已经开始使用Visual Studio Code了.
我做了以下步骤来创建一个新的.Net Core控制台项目:
我总是得到一个关于遗失资产的警告标志:
我选择了不再问我,这是一个非常糟糕的主意,因为它创建了一个模板tasks.json,我必须手动替换输出路径.
不幸的是,没有选择,比如不要再问我并自动加载资产,所以看来我必须在创建新项目时手动加载.
有更好的解决方案吗?
我有以下代码来过滤 Cosmos DB 中的一些数据:
Container container = await service.GetContainer(containerName, partitionKeyA);
using (FeedIterator<T> resultSet = container.GetItemQueryIterator<T>(
queryDefinition: GetComplexSQLQueryDefinition(),
paginationInfo.Token,
requestOptions: new QueryRequestOptions()
{
PartitionKey = new PartitionKey(partitionKey),
MaxItemCount = 10
}
))
{
FeedResponse<T> response = await resultSet.ReadNextAsync();
//get total count
int totalCount = -1;
}
Run Code Online (Sandbox Code Playgroud)
查询可以产生许多记录,因此我需要分页。
不幸的是,我需要项目的总数- 它可能会根据过滤而变化。
根据这个答案,我只有两个选择:
我创建第二个 SQL 查询,它使用 SQL select 命令来计算记录数 - 然后再次查询数据库以选择实际记录:
var query = new QueryDefinition("SELECT value count(1) FROM c WHERE c.tenantId = @type");
query.WithParameter("@type", '5d484526d76e9653e6226aa2');
var container …Run Code Online (Sandbox Code Playgroud)我添加了一个drawable到我的应用程序,我可以触摸移动,并根据手指移动速度,我想做不同的动作.
我检查了事件,我只能使用MotionEvent.ACTION_MOVE来检测是否有运动.所以我保存了最后一个动作的时间戳并获得了实际值,我计算了动作的增量距离,并使用了公式
速度=距离/时间
但是,速度值显示各种数字,从0到aprox.6但是如果我慢慢地或快速地使用我的手指并不重要.我应该修改什么才能获得触摸移动的速度?
我使用以下代码:
@Override
public boolean onTouch(View view, MotionEvent motionEvent)
{
final int X = (int) motionEvent.getRawX();
final int Y = (int) motionEvent.getRawY();
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
oldTimeStamp=System.currentTimeMillis();
break;
case MotionEvent.ACTION_UP:
speed=0;
textView.setText("speed: " + speed);
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
timeStamp= System.currentTimeMillis();
long diff=timeStamp-oldTimeStamp;
double dist=Math.sqrt(Math.pow(_xDelta,2)+Math.pow(_yDelta,2));
double speed=dist/diff;
textView.setText("speed: " + speed);
oldTimeStamp=timeStamp;
RelativeLayout.LayoutParams layoutParams …Run Code Online (Sandbox Code Playgroud) 我有一个使用.Net 4.0的复杂项目.(目标框架是.Net 4).
我使用Visual Studio 2017编译源代码,并使用以下代码:
if(int.TryParse(inputText, out int x))
StartAnotherMethod(x);
Run Code Online (Sandbox Code Playgroud)
它在我的计算机上成功编译,所以我提交了构建服务器.
令人惊讶的是,它有编译错误.
错误CS1525:无效的表达式术语'int'
错误CS1003:语法错误,','预期
我在在线编译器中检查了它.它使用.Net 4.5,还显示编译错误.
https://dotnetfiddle.net/pibxC2
编译错误(第9行,第32行):无效的表达式术语'int'
编译错误(第9行,第33栏):; 预期
编译错误(第9行,第33栏):无效的表达式术语')'
编译错误(第9行,第34行):; 预期
编译错误(第9行,第34行):无效的表达式术语')'
编译错误(第9行,第35栏):; 预期
正如我所读到的,语言功能不需要新的框架,所以它应该编译没有任何问题.
我错过了什么?
我用一个非常复杂的子项xml创建了一个ExpandableListView.它包含TextView,Checkbox和EditText.部分内容如下:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:stretchColumns="1">
<TableRow>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/lblData1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14dip"
android:paddingTop="2dp"
android:layout_marginLeft="4dp"
android:text="@string/lblTitle1"
android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"/>
<EditText android:layout_width="wrap_content"
android:layout_height="wrap_content" android:selectAllOnFocus="true">
</EditText>
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)
列表视图很好地显示了列表,我可以看到我的子项目及其相应的小部件,但当我在EditText内部单击时,它会显示键盘一瞬间,焦点前进到下一个孩子并隐藏键盘(焦点丢失,而不是移动到下一个EditText).
我怎么能防止这种情况?我想在EditTexts中写文本.