Tag: xaml

为什么我不能将DataContext = {Binding}用于我的上下文菜单?

我的代码看起来像这样: 没有上下文菜单,一切都按预期工作。 但是当我添加这些行时: 我为使用HierarchicalDataTemplate每个元素得到了这个(运行时)错误: System.Windows.Data错误:3:找不到提供DataContext的元素。 BindingExpression :(没有路径); 的DataItem = NULL; target元素是’SomeContextMenu’(Name =”); target属性是’DataContext’(类型’Object’) 为什么Binding适用于除上下文菜单之外的所有内容,但不适用于上下文菜单?

发布时WPF RightClick MouseBinding?

如何启用鼠标绑定到右键的释放? 目前我在xaml中有以下代码,它与关闭wpf窗口有关。 这里的问题是,因为它在关闭窗口时对点击的加速作出反应,它激活桌面上的上下文菜单。

将事件绑定到ViewModel

我正在为我的应用程序使用WPF和PRISM框架。 我使用的模式是MVVM(模型 – 视图 – ViewModel),我试图将MouseLeftButtonUp事件从View中的代码隐藏到ViewModel(因此事件将根据MVVM规则)。 现在我有这个: View.xaml: View.xaml.cs(代码隐藏): public partial class UC1001_DashBoardConsultants_View { public UC1001_DashBoardConsultants_View(UC1001_DashboardConsultantViewModel viewModel) { InitializeComponent(); DataContext = viewModel; } } ViewModel.cs: public void EmployeeGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { // insert logic here } 主要的想法是,当我点击DataGrid中的一个单元格时,事件将会触发。 我首先在后面的代码中尝试了它,并且它有效。 我到目前为止使用EventTriggers,但是当我调试并单击一个单元格时,我的调试器没有进入该方法。 有谁知道如何解决这个问题? 提前致谢! PS:当我这样做时,它是否也与(对象发送者)参数一起使用? 因为我需要在我的ViewModel中使用DataGrid来获取我刚刚点击的ActiveCell。 编辑: 事件绑定与Command一起工作! 我在我的DataGrid中有这个: 如何将Tag属性绑定到ViewModel? 我知道它已经从ViewModel绑定了,但是你可以看到值来自一个数组/列表和每列的值是不同的。

MVVM了解问题

我对mvvm的问题清单,你不需要自己回答,这些链接对我有帮助,我们将不胜感激: 如果我有一个Mainpage.xaml文件,并且我正在使用一个viewmodelclass,哪些代码应该在Mainpage.xaml.cs文件中? 没有? 这段代码应该在Mainpage.xaml.cs文件中: Viewmodel base = new Viewmodel(); 如果我实现ICommands,我如何访问Mainpage.xaml上的textbox.text? ICommands完全取代了Button.Click事件? 不是吗?

如何加快垂直滚动条标记的渲染速度

我有一个自定义的垂直滚动条,显示DataGrid中所选项目的标记。 我面临的问题是,当存在大量项目(例如可能是5000到50000)时,在渲染标记时存在滞后。 使用以下代码,它基本上按照所选项目索引,项目数和轨道高度进行渲染。 显然这是低效的,我正在寻找其他解决方案。 这是我自定义的垂直滚动条 这是我的转换器,如果DataGrid高度发生变化,它会转换Y位置并相应地缩放。 public class MarkerPositionConverter: IMultiValueConverter { //Performs the index to translate conversion public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { //calculated the transform values based on the following object o = (object)values[0]; DataGrid dg = (DataGrid)values[1]; double itemIndex = dg.Items.IndexOf(o); double trackHeight = (double)values[2]; int […]

如何在C#代码后面的Button中添加StackPanel

如何使用c#代码在Button中添加StackPanel (即将以下XAML转换为C#)? 没有Button.Children.Add ……

以下方法之间的调用不明确:Identical.NameSpace.InitializeComponent()和Identical.NameSpace.InitializeComponent()

好吧,我怀疑这可能是Visual Studio的事情,但必须有一些原因。 我从默认项目列表中创建了一个ListBox(右键单击项目,或项目中的文件夹 – >添加 – >新项目 – > Xaml ListBox)。 我立刻得到了一条带有错误的红色波浪线: “错误2以下方法或属性之间的调用不明确:’Identical.NameSpace.ListBox1.InitializeComponent()’和’Identical.NameSpace.ListBox1.InitializeComponent()’C:\ Documents and Settings \ ouflak \ My Documents \ Visual Studio 2010 \ Projects \ Identical \ NameSpace \ ListBox1.xaml.cs 27“ 所有相关代码都是自动生成的,并且出错的原因是两个自动生成的文件之间存在冲突:ListBox1.g.cs和ListBox1.designer.cs,其中public void InitializeComponent()都在两者中声明。 当然,在这种情况下代码无法编译。 只需删除ListBox1.designer.cs就可以了,我想继续前进。 但我的问题是:为什么此代码会自动生成此错误? 我希望自动生成的任何东西都能够构建和编译,而无需触摸项目或任何代码。 对于您可以添加的几乎所有其他toobox项目,情况就是如此。 那么为什么要使用内置错误生成此代码呢? 我们应该找到一些方法来完成这项工作吗? 这段代码仅仅是一个建议,由IDE用户/开发人员来决定细节吗? 这是生成的代码:ListBox1.xaml: Item 1 Item 2 Item 3 ListBox1.g.cs: namespace Identical.Namespace […]

单击C#XAML列表框崩溃

我是Windows Phone 8.1的XAML的新手,并且遇到了一些麻烦 使Stackpanel可点击 单击时折叠项目 到目前为止我的工作看起来像这样: 和守则(请纠正我,如果有重大缺陷): 此代码稍后将包含在ListBox其中包含Image,Entry 1和绑定的简短描述: // the code above 所以我的问题是:每当我点击它时,我怎样才能在ListBox对每个Item进行漂亮的展开/折叠? 非常感谢你提前。

如何以编程方式将“运行”分配给文本属性?

我知道在XAML中我们可以做到…… This is my text My big bold text 问题是,如何以编程方式将Run分配给文本(字符串)属性?

WPF 4.0的DateTimePicker

根据这篇文章 ,.net 4中有一个单独的DatePicker控件。我已经尝试过了,我也没有看到让它选择一天中的时间的好方法。 有没有一种简单的方法可以通过编辑XAML模板将DatePicker转换为DateTimePicker? 如果没有,获得WPF 4.0的DateTimePicker的最佳方法是什么?