Tag: wpf

WpfToolkit DataGrid:突出显示已修改的行

有没有办法突出显示DataGrid上的所有修改行? 由于网格绑定到System.Data.DataTable我想我可能能够将每行的颜色绑定到它的RowState(下面的示例),但这似乎不起作用。 有任何想法吗? xmlns:data=”clr-namespace:System.Data;assembly=System.Data”

带有复选框的WPF ComboBox和带搜索字段的文本框

我已经完成了这个post 寻找带有复选框的WPF ComboBox,并尝试在DataTemplate包含TextBox ,但在运行应用程序时无法查看TextBox 。 我创建了一个UserControl ,如下所示 **** 这是代码 using System; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using System.Linq; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Runtime.CompilerServices; namespace MyProj.UserControls { /// /// Interaction logic for MultiSelectComboBox.xaml /// public partial class MultiSelectComboBox : UserControl { private ObservableCollection _nodeList; public MultiSelectComboBox() { InitializeComponent(); _nodeList = new ObservableCollection(); […]

如何更改WPF ComboBox SelectedText BackGround Color?

我在WPF-MVVM中有一个Combobox,我在combobox的弹出框和文本框中更改了combobox。 当我滚动combobox列表项时,他的背景是粉红色的,这就是我所拥有的。 但是从combobox列表中选择项目后,combobox项目中的选定值具有蓝色背景。 这是Windows窗体和WPF中combobox的默认设置。 有关详细信息,请参见图像。 如何在combobox文本框控件中更改选定的文本背景颜色 combobox有 IsEditable=True属性集

C#WPF从exe文件夹中加载图像

我想将我的程序从PC移动到另一个,但问题是图像没有加载到任何其他PC(源问题)。 所以我想知道我是否可以创建一个放置exe的文件夹,并将其命名为Resources并从那里加载每个图像。 image2.Source = new BitmapImage(new Uri(@”Res\startoh.png”));

WPF popup staysopen = false仍然会在外部单击时保持弹出窗口打开

我的问题是我在弹出窗口中创建了一个列表框,并设置了弹出窗口的staysopen = false。 但每次弹出框弹出时,我必须单击弹出窗口内的某些内容(如选择列表框中的元素),然后在弹出窗口外单击,它将自动关闭。 如果我没有点击任何内容,即使我点击弹出窗口之外的其他元素,弹出窗口也会保持打开状态。 我需要关闭弹出窗口而不需要单击其中的任何元素。 我能做什么? 这是代码,这个代码有一些其他样式链接,但只是一些颜色样式。 我的控件是当用户单击弹出框顶部的文本框时,列表框会弹出。 如果用户不执行任何操作并单击此元素外的任何位置,则弹出框将关闭。 谢谢。 我可以使用以下代码在Silverlight中完成它。 但似乎在wpf中,它不再起作用了。 popupAncestor = FindHighestAncestor(this.ListBoxPopup); if (popupAncestor == null) { return; } popupAncestor.AddHandler(System.Windows.Controls.Primitives.Popup.MouseLeftButtonDownEvent, (MouseButtonEventHandler)ClosePopup, true); <!—->

WPF – 无法更改OnChanged方法内的GUI属性(从FileSystemWatcher触发)

我想在OnChanged方法中更改GUI属性…(实际上我试图设置图像源..但为了简单起见,这里使用了一个按钮)。 每次filesystemwatcher检测到文件中的更改时都会调用它。它会到达“top”输出..但在尝试设置按钮宽度时会捕获exception。 但如果我把相同的代码放在一个按钮..它的工作正常。 我真诚地不明白为什么..能有人帮助我吗? private void OnChanged(object source, FileSystemEventArgs e) { //prevents a double firing, known bug for filesystemwatcher try { _jsonWatcher.EnableRaisingEvents = false; FileInfo objFileInfo = new FileInfo(e.FullPath); if (!objFileInfo.Exists) return; // ignore the file open, wait for complete write //do stuff here Console.WriteLine(“top”); Test_Button.Width = 500; Console.WriteLine(“bottom”); } catch (Exception) { //do nothing […]

使用枚举作为键绑定到Dictionary中的值

我是一些应用程序,我想将一些文本框和chekcbox绑定到Dictionary(Enum,string)的值字段。 这有可能,我该怎么做? 在xaml代码中我有这样的东西 – 它用于字典,字符串作为键,但它不能正确绑定到枚举键 ..这就是我在Enum中所拥有的 public enum MyEnum { PrimaryAddress, SecondaryAddress, UsePrimaryAddress } 在ViewModel中,字典定义为: public Dictionary Properties 我找到了具有枚举值的combobox的解决方案,但这不适用于我的情况。 任何建议?

基于单元格值的DataGrid行背景

我目前正在开发一个C#WPF数据网格。 我有一个DataGrid,它有自动生成的列,代码连接到SQLite数据库并创建数据集,然后将此数据集设置为DataGrid ItemsSource。 下面是DataGrid的XAML代码 以下是为DataGrid设置ItemsSource的代码 try { DataSet ds = new DataSet(); SQLiteDataAdapter da = new SQLiteDataAdapter(query, db.conn); da.Fill(ds); //tblGrid.AutoGenerateColumns = true; tblGrid.ItemsSource = ds.Tables[0].DefaultView; } catch (SQLiteException ex) { MessageBox.Show(“Unable to retrieve logins from database.\n\n” + ex.Message + “\n\nError Code: ” + ex.ErrorCode); } 数据库中显示的列(自动生成)是ID,日期,时间,状态。 我需要做的是,如果状态列的行中的值等于错误,则更改该行的背景颜色。 我假设我需要在DataGrid标签中添加某种样式标签和DataTriggers,但不确定我需要什么。 我尝试过设置ItemsSource的代码的任何内容都会显示一条错误,指出在添加ItemsSource之前Source必须为空。 感谢您的任何帮助,您可以提供。

如何在WPF中实现命令以使用祖先方法?

我有这个上下文菜单资源: 我想在两个地方重复使用它。 首先,我试图将它放在DataGrid : … ContextMenu本身工作正常,但是使用Executed=”…”我现在打破了应用程序并抛出: PresentationFramework.dll中出现“System.InvalidCastException”类型的第一次机会exception 附加信息:无法将类型为“System.Reflection.RuntimeEventInfo”的对象强制转换为“System.Reflection.MethodInfo”。 如果我删除整个Executed=”…”定义,那么代码就可以工作(并且命令不执行任何操作/灰显)。 一旦我右键单击网格/打开上下文菜单,就会抛出exception。 DataGrid放在几个元素下面,但最终它们都在一个TabControl (名为MainTabs ) MainTabs ,它将ItemsSource设置为FooViewModel的集合,在那个FooViewModel我有一个我想要调用的方法HelpExecuted 。 让我们想象一下: TabControl( ItemsSource=ObservableCollection , x:Name=MainTabs ) 格 更多UI DataGrid(带上下文菜单集) 为什么我会收到此错误,如何使上下文菜单命令“定位” FooViewModel的HelpExecuted方法?

集合依赖属性

我有一个自定义控件,它具有ObservableCollection类型的DependencyProperty ,它绑定到observableCollection : <MyControl MyCollectionProperty = {Binding MyObservableCollection} … 问题是添加到MyObservableCollection不会更新MyCollectionProperty 。 我需要完全替换MyObservableCollection以使其工作,例如 MyObservableCollection = null; MyObservableCollection = new ObservableCollection(){…} 有没有更好的方法来处理这个? 编辑: public ObservableCollection Columns { get { return (ObservableCollection)GetValue(ColumnsProperty); } set { SetValue(ColumnsProperty, value); } } public static readonly DependencyProperty ColumnsProperty = DependencyProperty.Register(“Columns”, typeof(ObservableCollection), typeof(MyControl), new PropertyMetadata(new ObservableCollection(), OnChanged));