Tag: 绑定

如何在Binding中加载控件而不阻止UI?

我有这种情况: 我想在MainWindow的ViewModel中加载一个集合,我有一个大数据,所以当我进入人物集合的幻灯片时,它应该等待完成加载然后我可以看到完整列表,我有以下内容: 在xaml代码我有: 在视图模式中我有: // … private ObservableCollection _People; public ObservableCollection People { get{return _People;} set{ _People = value; RaisePropertyChange(“People”);}} // … 并且我想在加载第一个完全开始加载第二个…之后逐个加载所有人列表而不阻塞主窗口我希望我的窗口看起来像: 我厌倦了这样做,但我失败了。 谢谢你。

WPF DataGrid / ListView绑定到数组mvvm

我们假设你有 一个N个整数的数组 表示行数的整数值 在模型中。 整数绑定到视图中的ComboBox。 Q1)如何将数组(或数组的各个项)绑定到DataGrid或ListView控件,以便: 当您更改ComboBox值时,只有在DataGrid或ListView中可见/生成的行数 DataGrid或ListView的各行包含允许编辑数组中相应值的TextBoxes(或类似)。 绑定必须是双向的。 即如果我在ComboBox中选择5,则只能看到5行,其中包含5个文本框,每个文本框都绑定到数组的前5个项目。 Q2)您如何向DataGrid / ListView提供另一列(仅文本信息),以便: 第一行总是读为0.每个后续行都会显示:’上一行’+’360除以ComboBox选择值’(假设为了简单起见它将限于偶数)。 任何帮助或建议都非常感谢。 谢谢。 编辑(22.11.2013): 根据Sheridan的建议,我将这个问题与我的另一个问题联系起来, 这个问题有更多关于这个问题的信息(和背景)。 最初我打开了这个问题,因为我认为仅仅针对裸机制的任何背景问题都会得到更好的理解和更好的回答机会。 我有所纠正。

如何绑定到CaretIndex又名文本框的光标位置

嗨,我正在尝试绑定到不是DependencyProperty的TextBox.CaretIndex属性,所以我创建了一个Behavior ,但它没有按预期工作。 期望(专注时) 默认= 0 如果我在视图中更改了值,它应该更改viewmodel中的值 如果我更改了viewmodel中的值,它应该更改我视图中的值 目前的行为 当窗口打开时,viewmodel值被调用 代码隐藏 public class TextBoxBehavior : DependencyObject { public static readonly DependencyProperty CursorPositionProperty = DependencyProperty.Register( “CursorPosition”, typeof(int), typeof(TextBoxBehavior), new FrameworkPropertyMetadata( default(int), new PropertyChangedCallback(CursorPositionChanged))); public static void SetCursorPosition(DependencyObject dependencyObject, int i) { // breakpoint get never called dependencyObject.SetValue(CursorPositionProperty, i); } public static int GetCursorPosition(DependencyObject dependencyObject) { // breakpoint […]

无法在具有DataView实例作为项目源的WPF数据网格中显示数据

我正在使用WPF工具包中的DataGrid对象。 我将DataGrid对象绑定到DataTable实例的默认视图,如以下代码中所声明: WeatherGrid.ItemsSource = weatherDataTable.DefaultView; weatherDataTable有三列。 第一列定义为包含字符串数据类型。 其他两列定义为包含双数据类型。 当应用程序退出调用绑定的函数时,如声明中所表示的那样,DataGrid对象显示第一列的数据,但不显示其他列的数据。 当我在调试器的立即窗口中键入以下内容时: ((DataRowView)WeatherGrid.Items[0]).Row[1] 我得到一个数字,但这与显示的内容不符。 为什么只有第一列可见,我如何才能看到所有数据? 我将在下面的DataGrid对象中留下我的XAML定义:

在controltemplate中将元素指定为动画目标

我正在尝试为ContentTemplate中的一个控件设置一个事件触发器,当我将故事板TargetName设置为“ContentPopup”时,我正在使用一个Storyboard和一个DoubleAnimation与DoubleAnimationUsingKeyFrames嵌套,这是我在下面持有的Grid,但是我收到一个错误告诉我: 名称“ContentPopup”不在命名空间“System.Windows.Controls.Grid”中。 控件模板上的动画代码是: … … 我需要动画的网格代码是: … MSDN表示,要使对象可定位,需要执行以下操作 网格是一个FrameworkElement我想让动画在我使用这个控件模板在我的主窗口上召唤的每一个控件上运行,它们很多,所以我需要使用模板。 问题是: 有没有办法将元素指定为模板中的目标?

来自MemoryStream的UWP BitmapImage SetSource挂起

在我的UWP应用程序中,我以byte []的forms将图像存储在SQLite数据库中。 然后当我从db中检索我的对象时,我将它们绑定到具有Image控件的GridView数据模板。 由于我无法将Image的Source直接绑定到数组,因此我在对象的类中创建了一个BitmapImage属性,以将Image控件绑定到: public BitmapImage Icon { get { using (var stream = new MemoryStream(icon)) { stream.Seek(0, SeekOrigin.Begin); var img = new BitmapImage(); img.SetSource(stream.AsRandomAccessStream()); return img; } } } 问题是,我的应用程序挂在img.SetSource行上。 经过一些实验,我发现第二个MemoryStream可以解决这个问题: public BitmapImage Icon { get { using (var stream = new MemoryStream(icon)) { stream.Seek(0, SeekOrigin.Begin); var s2 = new MemoryStream(); stream.CopyTo(s2); s2.Position = […]

将Model变量绑定到ASP.NET MVC3中的Action方法

我有一个控制器HomeController与以下action method : [HttpPost] public ActionResult DisplayData(MyViewModel myViewModel) { // Do something with myViewModel } ViewModel : public class MyViewModel { public string Name { get; set; } public string Surname { get; set; } public bool IsPeriod { get; set; } } 以下是View @model AppName.ViewModels.MyViewModel @{ Html.RenderPartial(“MyPartialView”, Model); } 我使用Url.Action如何在这里描述,但我在DisplayData操作方法中得到的是null。 在我得到的源代码中: 所以它实际上是传递类型而不是值。 而是将ViewModel正确传递给局部视图。 我究竟做错了什么?

绑定WPF用户控件的问题

这就是我本来想要的。 具有TextBlock的UserControl ,其Text属性绑定到UserControl的Prop属性。 (这只是我实际问题的一种表现) 下面是我的UserControl的一部分( ClientDetailsControl.xaml ) 接下来是ClientDetailsControl.xaml.cs public partial class ClientDetailsControl : UserControl { public static DependencyProperty PropProperty = DependencyProperty.Register(“Prop”, typeof(String), typeof(ClientDetailsControl)); public String Prop { get; set; } public ClientDetailsControl() { InitializeComponent(); DataContext = this; } } 现在,在我的主WPF窗口( NewOrder.xaml )中,我正在使用此UserControl MyProp属性在NewOrder.xaml.cs声明如下 public String MyProp { get { return “HELLO”; } } 当我运行此代码时,我收到以下错误: BindingExpression路径错误:在’object”’ClientDetailsControl’(Name […]

如何在WPF中创建可绑定属性?

我有一个用户控件。 我想在我的用户控件中创建一个可绑定的属性。 我创建一个DependencyProperty如下: public static readonly DependencyProperty DateProperty = DependencyProperty.Register(“Date”, typeof(DateTime), typeof(DaiesContainer), new UIPropertyMetadata(DateTime.Now)); public DateTime Date { get { return (DateTime)GetValue(DateProperty); } set { SetValue(DateProperty, value); } } 然后我在我的XAML中使用它: 在我的ViewModel中,调用Date属性的get方法。 但在我的用户控件中,Date属性未设置为值。

Silverlight中的动态图像源绑定

我想根据ChildWindow DataContext设置图像的源。 这是XAML文件: … … 如果我覆盖ChildWindow的Show方法并设置图像的源,它工作正常: public new void Show() { DialogIcon.Source = new BitmapImage(new Uri(@”/Images/DialogWindow/Confirm.png”, UriKind.Relative)); base.Show(); } 但它看起来很丑陋而且不是“silverlight方式”,所以我决定改变: 你看我注册了一个DialogIconConverter来绑定DataContext的源代码。 public class DialogIconConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { //currently it’s an hard-coded path return new BitmapImage(new Uri(@”/Images/DialogWindow/Confirm.png”, UriKind.Relative)); } … } 但它现在不能正常工作,我在这个控件中有几个其他转换器工作正常。 只有这一个不起作用。 你能帮忙找出问题所在吗? 编辑: […]