Tag: wpf

WPF MVVM导航视图

我有一个多视图的WPF应用程序。 我想从视图1切换到视图2,从那里我可以切换到多个视图。 所以我想在视图1上的一个button加载view2在同一个窗口。 我尝试了这些东西,但无法实现它的工作。 如何使用MVVM Light为WPF导航窗口? http://blog.galasoft.ch/archive/2011/01/06/navigation-in-a-wp7-application-with-mvvm-light.aspx 从第一个链接的问题是,我不明白viewmodellocator代码。 他们调用CreateMain(); 函数,但是这个定义在哪里,我如何切换到视图内的其他视图。

如何处理WPF中的WndProc消息?

寻找WPF陡峭的学习曲线。 在好的Windows窗体中,我只是重写WndProc ,并开始处理消息。 有人可以告诉我一个如何在WPF中实现相同的事情的例子吗?

绑定到静态属性

我很难将简单的静态string属性绑定到文本框。 这是与静态属性的类: public class VersionManager { private static string filterString; public static string FilterString { get { return filterString; } set { filterString = value; } } } 在我的xaml中,我只想将这个静态属性绑定到一个文本框中: <TextBox> <TextBox.Text> <Binding Source="{x:Static local:VersionManager.FilterString}"/> </TextBox.Text> </TextBox> 一切都编译完成,但在运行时,我得到以下exception: 无法将属性“Source”中的值转换为“System.Windows.Markup.StaticExtension”types的对象。 对象'System.Windows.Data.Binding'在标记文件'BurnDisk; component / selectversionpagefunction.xaml'Line 57 Position 29。 任何想法我做错了什么?

INotifyPropertyChanged与ViewModel中的DependencyProperty

当在Model-View-ViewModel体系结构的WPF应用程序中实现ViewModel时,似乎有两个主要的select如何使它成为数据绑定的。 我见过使用DependencyProperty实现视图将要绑定的属性,我已经看到实现INotifyPropertyChanged的ViewModel。 我的问题是我应该什么时候比另一个更喜欢? 有任何性能差异? 将ViewModel依赖关系提供给WPF真的是个好主意吗? 做出devise决定时还需要考虑什么?

在WPF中,x:Name和Name属性有什么区别?

标题说明了一切。 有时似乎Name和x:Name属性是可以互换的。 那么,它们之间的明确区别是什么,什么时候最好使用一个呢? 是否有任何性能或内存暗示以错误的方式使用它们? 编辑回应到目前为止表明,使用x:Name一直工作正常,但我仍然想知道是什么区别。 微软把这两个属性放到了WPF的第一个版本中,所以必须有一些合理的解释。

虚拟化一个ItemsControl?

我有一个ItemsControl包含我想虚拟化的数据列表,但是VirtualizingStackPanel.IsVirtualizing="True"似乎不能用于ItemsControl 。 这是真的,还是有另一种做法,我不知道? 为了testing我一直在使用下面的代码块: <ItemsControl ItemsSource="{Binding Path=AccountViews.Tables[0]}" VirtualizingStackPanel.IsVirtualizing="True"> <ItemsControl.ItemTemplate> <DataTemplate> <TextBlock Initialized="TextBlock_Initialized" Margin="5,50,5,50" Text="{Binding Path=Name}" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> 如果我将ItemsControl更改为一个ListBox ,我可以看到Initialized事件只运行几次(巨大的余量只是我只需要通过几条logging),但是作为一个ItemsControl每个项目都被初始化。 我已经尝试将ItemsControlPanelTemplate设置为VirtualizingStackPanel但似乎没有帮助。

如何让文本框只接受WPF中的数字input?

我正在寻找接受数字和小数点,但没有迹象。 我已经使用WinForms 的NumericUpDown控件和Microsoft的NumericUpDown自定义控件的示例查看了示例。 但到目前为止,似乎NumericUpDown(WPF支持或不支持)不会提供我想要的function。 我的应用程序的devise方式,没有谁在他们正确的思想是要混乱的箭头。 他们没有任何实际意义,在我的应用程序的上下文中。 所以我正在寻找一个简单的方法来使一个标准的WPF文本框只接受我想要的字符。 这可能吗? 这是否实用?

SelectedItem,SelectedValue和SelectedValuePath之间的差异

以下几点有什么区别: 的SelectedItem 的SelectedValue SelectedValuePath 所有这些依赖属性都是在Selector类中定义的。 我经常混淆SelectedItem与SelectedValue和SelectedValue与SelectedValuePath 。 我想知道它们之间的区别,也是什么时候使用它们,特别是SelectedValue和SelectedValuePath 。 请用一些简单的例子来解释它们的用法 。

从System.Drawing.Bitmap加载WPF BitmapImage

我有一个System.Drawing.Bitmap的实例,并希望以System.Windows.Media.Imaging.BitmapImage的forms提供给我的WPF应用程序。 什么是最好的办法呢?

用MVVM与wpf对话的好习惯或不好的做法?

我最近有问题为我的WPF应用程序创build添加和编辑对话框。 我想在我的代码中做的就是这样的。 (我主要使用MVVM的viewmodel第一种方法) 调用对话窗口的ViewModel: var result = this.uiDialogService.ShowDialog("Dialogwindow Title", dialogwindowVM); // Do anything with the dialog result 它是如何工作的? 首先,我创build了一个对话服务: public interface IUIWindowDialogService { bool? ShowDialog(string title, object datacontext); } public class WpfUIWindowDialogService : IUIWindowDialogService { public bool? ShowDialog(string title, object datacontext) { var win = new WindowDialog(); win.Title = title; win.DataContext = datacontext; return win.ShowDialog(); […]