我想知道这是否会破坏MVVM模式,如果是这样,为什么以及为什么这么糟糕呢?
WPF:
<Button Click="Button_Click" />
Run Code Online (Sandbox Code Playgroud)
代码背后:
private void Button_Click(object sender, RoutedEventArgs e)
{
ViewModel.CallMethod();
}
Run Code Online (Sandbox Code Playgroud)
查看型号:
public void CallMethod()
{
// Some code
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,它使代码背后非常简单,视图模型仍然对视图和代码背后不可知,对视图的更改不会影响业务逻辑.
在我看来比Commands或更简单明了CallMethodAction.
我不想要那种答案"它不应该如何完成".我需要一个恰当而合乎逻辑的理由,说明为什么这样做会导致维护或理解问题.
我在WPF中使用WrapPanel来显示图像.调整表单大小时,这些图像会尝试占用最大的自由空间,但是当图片几乎可以填充空间时,WrapPanel的末尾会有一个相对较大的间隙.我想要做的是在新的填充这个空白之前在图像之间共享这个空间(就像Windows 7 Explorer在显示图像图标时所做的那样).
如何使用CURLFile和上传数组中的多个文件curl_setopt?
使用数据数组会引发错误(无法将数组转换为字符串),并且http_build_query数据会损坏CURLFile对象。
我必须上传的数据如下所示:
[
'mode' => 'combine',
'input' => 'upload',
'format' => $outputformat,
'files' => [
[0] => CURLFile object,
[1] => CURLFile object,
[x] => ...
]
]
Run Code Online (Sandbox Code Playgroud) 如何获取发送到MatDialog的数据ng-template?
模板
<button mat-button (click)="openDialog()">Open</button>
<ng-template #dialogRef>
{{data?}} <!-- <<< Here is the problem data is undefined -->
</ng-template>
Run Code Online (Sandbox Code Playgroud)
零件
export class SomeComponent {
@ViewChild("dialogRef") dialogRef: TemplateRef<any>;
constructor(private dialog: MatDialog) { }
openDialog(): void {
this.dialog.open(this.dialogRef, { data: "some data" });
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含输入和材料组件(如mat-select或mat-checkbox)的表单。
每次用户进行修改时,我都想将它们保存到数据库中。所以我做了类似的事情<form (change)="save()">。
这对于本机输入完美无缺,但当用户更改材质组件值时它不会触发。
我宁愿避免<mat-select (selectionChange)="save()">在每个组件上使用这样的解决方案,因为当我必须更新我的表单时,我很容易忘记添加它。
编辑
这是一个模板驱动的表单。我的模板如下:
<form (change)="save()">
<!-- Will trigger save -->
<mat-form-field class="col">
<input matInput placeholder="Name" name="name" [(ngModel)]="item.name">
</mat-form-field>
<!-- Will NOT trigger save -->
<mat-form-field class="col">
<mat-select placeholder="Category" name="category [(ngModel)]="item.category.id">
<mat-option *ngFor="let category of categories" [value]="category.id">{{category.name}}</mat-option>
</mat-select>
</mat-form-field>
<!-- ... -->
</form>
Run Code Online (Sandbox Code Playgroud)
组件代码没有什么特别的,只有模型变量 ( item: Item;)。
我有多个DataGrids配置在ScrollViewer上.这些DataGrids具有"height:auto"属性,因此我可以隐藏滚动条并查看所有内容.唯一的问题是DataGrids占据了焦点,因此我无法滚动ScrollViewer.这是一个属性,以保持对ScrollViewer的关注,但也保持DataGrids的行为(所以我可以选择元素)?
谢谢 !
我在实时编辑HTML textarea时创建了一个建议面板.为了获得{x,y}坐标,我使用了一个隐藏在textarea后面的div.我得到了carret的位置,然后将carret之前的文本和span标签复制到隐藏的div.然后我得到跨度坐标并将其提供给建议面板.
唯一的问题是,当我向textarea添加一个没有空格的长行时,该行在div面板中被剪切时被包裹(因此在我添加回车之前,建议面板不再适合放置).
有没有办法在这两个地方(textarea和div面板)以相同的方式拟合文本?
(我正在使用jQuery)
我想知道如何使用验证器服务对实体进行级联验证.
使用:
$validator = $this->get('validator');
$errorList = $validator->validate($entity);
Run Code Online (Sandbox Code Playgroud)
不执行"实体"子实体的验证.
我很确定可以使用表单验证(使用'cascade_validation' => true)来完成它.
我想知道Facebook,Twitter和LinkedIn(仅举几例)是如何使用Windows Live API查找用户朋友的电子邮件地址来向他们发送邀请.当我尝试使用Windows Live API时,我只获得email_hashes,它只能用于与系统的现有用户电子邮件进行比较,而不是向他们发送邀请.
这些服务是否支付Microsoft以获得高级API的好处?
谢谢你,塞巴斯蒂安
我正在使用 Magick.NET 对图像进行去斑处理。对于相对较小的图像(1000*1500 像素),大约需要 1-2 秒。我读到 ImageMagick 使用 OpenCL 来加速某些操作,去斑就是其中之一。所以,我想知道为什么最近的显卡(GTX 960)这么慢。
是否有启用 OpenCL 的 Magick.NET 设置?
c# ×3
wpf ×3
angular ×2
.net ×1
api ×1
curl ×1
datagrid ×1
email ×1
file ×1
focus ×1
forms ×1
html ×1
imagemagick ×1
javascript ×1
jquery ×1
magick.net ×1
mvvm ×1
onchange ×1
opencl ×1
php ×1
scrollviewer ×1
symfony ×1
textarea ×1
upload ×1
validation ×1
windows-live ×1
wrappanel ×1