我正在尝试创建一个自定义的wpf控件,我想知道如何添加一些设计时功能.我用谷歌搜索,似乎无法实现我的目标.
所以这是我的简单问题,如何在我的WPF用户控件的设计时上下文菜单中添加一个条目?默认情况下,上下文菜单包含条目查看代码,查看XAML等.
好的,使用WPF(使用MVVM)并遇到一个问题,想要一些输入.我有一个简单的课程
如下所示(假设我已经实现了IDataErrorInfo):
public class SimpleClassViewModel
{
DataModel Model {get;set;}
public int Fee {get { return Model.Fee;} set { Model.Fee = value;}}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试在xaml中绑定它:
<TextBox Text={Binding Fee, ValidatesOnDataErrors=true}/>
Run Code Online (Sandbox Code Playgroud)
当用户然后清除文本时,会发生数据绑定错误,因为它无法将string.empty转换为int.好吧,费用是必填字段,但因为数据绑定不会转换回来,所以我无法提供错误信息,因为我的课程没有更新.那么我需要做以下事情吗?
public class SimpleClassViewModel
{
DataModel Model {get;set;}
int? _Fee;
public int? Fee
{
get { return _Fee;}
set { _Fee = value;if (value.HasValue) { Model.Fee = value;}
}
}
Run Code Online (Sandbox Code Playgroud) 你如何在c#中做到这一点?
<TextBlock Text={Binding MyProperty}/>
Run Code Online (Sandbox Code Playgroud)
假设DataContext设置为Type MyClass类
好的,我对sql server索引视图感到困惑(使用2008)
我有一个名为的索引视图
AssignmentDetail
当我查看执行计划时
select * from AssignmentDetail
Run Code Online (Sandbox Code Playgroud)
它显示了索引视图应该抽象出来的所有其他表的所有底层索引的执行计划.
我认为执行计划只是对PK_AssignmentDetail的聚集索引扫描(我的视图的聚集索引的名称),但事实并非如此.
这个索引视图似乎没有性能提升我应该做什么?我是否还应该为所有列创建一个非聚集索引,以便它不必命中所有其他索引?
任何见解将不胜感激
我无法编写xaml表示以允许绑定到我的后台ViewModel以进行级联菜单
这是VM:
public class MenuNode
{
public string Header {get;}
public List<MenuNode> Items {get;}
}
Run Code Online (Sandbox Code Playgroud)
我有的xaml是这样的:
<ContextMenu ItemsSource="{Binding Choices}" >
<ContextMenu.Resources>
<DataTemplate DataType="{x:Type vmi:MenuNode}">
<MenuItem Header="{Binding Header}" ItemsSource="{Binding Items}"/>
</DataTemplate>
</ContextMenu.Resources>
</ContextMenu>
Run Code Online (Sandbox Code Playgroud)
当菜单弹出时,我得到带箭头的第一级条目(表示应该有一个子菜单),但当我将鼠标悬停在菜单上时,它不会显示子菜单项.
有任何想法吗?
我试图在Sql Server 2005中的视图上添加一个索引,我得到了这个错误:"无法在视图上创建索引'AllAssignmentNotes'因为视图不是模式绑定的."
我不想在这里提供太多信息,因为它可能超载.只是想知道是否有人可以给我一些帮助.
我去了错误给我的网址,让我无处可去.完整错误如下.
我知道你不能给出真正的答案,因为我没有给你所有的信息,我的道歉.
TITLE: Microsoft SQL Server Management Studio ------------------------------ Create failed for Index 'IX_AssignmentId'. (Microsoft.SqlServer.Smo) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Create+Index&LinkId=20476 ------------------------------ ADDITIONAL INFORMATION: An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ Cannot create index on view 'AllAssignmentNotes' because the view is not schema bound. (Microsoft SQL Server, Error: 1939) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=1939&LinkId=20476 ------------------------------ BUTTONS: OK ------------------------------
我已经开始创建一个wpf mvvm应用程序.它似乎是ViewModel的一个重要组成部分,它是一组ICommands,它具有允许视图与视图模型交互的松散耦合方式.
我的问题是,为什么我不能直接绑定到方法?
我使用了Josh Smith的ICommand的RelayCommand实现,它允许你将delgates注入ICommand对象,但实际上,是否有一些更容易的方法允许按钮推送来调用viewmodel中的方法?
我是MVVM的新手,我相信我需要一些启发
有谁知道DbDataReaders如何实际工作.我们可以使用SqlDataReader作为示例.
当您执行以下操作时
cmd.CommandText = "SELECT * FROM Customers";
var rdr = cmd.ExecuteReader();
while(rdr.Read())
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)
数据读取器是否具有内存中的所有行,或者它只是抓取一个,然后当调用Read时,它是否会转到db并抓住下一个?似乎只是将一个内存带入内存将是糟糕的性能,但带来所有这些将使得它需要一段时间调用ExecuteReader.
我知道我是这个对象的消费者,并且实现它并不重要,但我只是好奇,我想我可能会花几个小时在Reflector中来了解它在做什么,所以我想问一个可能知道的人.
如果有人有想法,我只是好奇.
有人可以给我看一些HTML来布局以下不使用表吗?
______________________________________
|_______|_____________| |
|_______|_____________|_______________|
|_______|_____________| |
|_______|_____________| |
|_______|_____________|_______________|
Run Code Online (Sandbox Code Playgroud)
第三列需要跨越前两个"行",然后跨越接下来的三个"行"第一个"列"需要具有相同的宽度
我问这个是因为整个"表格已经死了布局"的论点
更新:标记的内容有复选框,文本框和textareas
结论:
这非常具有启发性.我相信我已经被这个哲学问题所清理了.
在我看来,一般规则应该是:不要为整个网站使用表,如果有看起来像表的部分,那么使用表."从不使用桌子"的极端似乎是不切实际和理论上的.同样,过度使用表会使维护变得困难,并且处理4深嵌套表可能是一个真正的痛苦.
因为上面的布局"看起来像一张桌子"我将使用一张桌子.:)
好的,我知道还有其他与我有关的问题,但我读过的都没有回答我的问题.
我有一个select标签,其中包含一些我更改事件的选项,但是当用户点击一个选择框然后按下向上/向下时,更改事件不会在IE中触发.它在Firefox中启动,我还没有检查过Chrome.
所以我想我想知道是否有一个简单的解决方案,我想这样做
$("#selector").change(function () {//Add code });
Run Code Online (Sandbox Code Playgroud)
我现在的解决方法是这样做:
$("#selector").bind('change keyup',function () {//Add code });
Run Code Online (Sandbox Code Playgroud)
我想我可以像这样创建一个插件:
$.fn.myChange = function (fcn) { return this.bind('change keyup',fcn);}
Run Code Online (Sandbox Code Playgroud)
我的主要想法是jquery作为一个库应该抽象出浏览器(in)兼容性的丑陋细节,所以我更喜欢我仍然可以使用base .change函数而不必担心我在浏览器上.
我只是想知道这是不是应该这样做的.有更好的方法吗?
更新:
我向jquery团队提交了一个错误,看看他们的想法.
这是一个显示问题的示例.打开它,点击进入选择框,然后按向上/向下键.您会注意到,当FF和Chrome执行时,IE不会触发更改事件.
mvvm ×4
wpf ×4
indexed-view ×2
sql-server ×2
xaml ×2
c# ×1
contextmenu ×1
css ×1
data-binding ×1
datatemplate ×1
dbdatareader ×1
html ×1
jquery ×1
sql ×1
viewmodel ×1