标签: binding

是否需要INotifyPropertyChanged来绑定ObservableCollection?

当我绑定时,请说a Label到a string,我这样定义字符串:

private string _lbl;
public string Lbl
    {
     get
     {
          return = _lbl;
     }
      set
     {
         _lbl=value;
          OnPropertyChanged("Lbl");
     }
}
Run Code Online (Sandbox Code Playgroud)

随着INotifyPropertyChanged在我的类中实现接口.

我应该以同样的方式定义一个ObservableCollection或者我可以这样离开吗?

public ObservableCollection<File> myFiles {get; set;}

c# wpf binding observablecollection inotifypropertychanged

0
推荐指数
1
解决办法
789
查看次数

正确且正确地将控件/ UIElement可见性绑定到Property MVVM C#WPF

我是MVVM的新手,我一直在构建我的ViewModel.我有一个ViewModel,它包含一个ICommand,然后通过命令按钮绑定到我的View中.该ICommand原因的过程对我的视图模型,然后调用进一步大幅缓慢的过程被调用.在执行此过程时,我想让控件UIElement的可见性变为可见,然后在过程完成后隐藏(我打算绑定标签并确定进度条的可见性)

例如,在我的视图模型中,我有

public void calledFromCommandButton() {
RaisePropertyChange("Starting");
superLongProcedure();
RaisePropertyChange("Finished");

}
Run Code Online (Sandbox Code Playgroud)

这只是感觉有点傻,不得不提出2个不同的属性变化,因此,我认为我做错了.我想我可以通过一个属性更改和转换器来实现吗?

那么,将UIElement可见性绑定到属性更改事件的正确和正确方法是什么?

谢谢托马斯

c# wpf binding mvvm viewmodel

0
推荐指数
1
解决办法
1601
查看次数

将两个组合框绑定到同一数据源,每个组合将具有单独的行为

现在,当我在第一个组合框中选择项目时,第二个模拟选择.我希望能够单独选择每个组合框.谢谢.

 List<W6AdminUIs2.DictionaryObject> taskStatuses = W6AdminUIs2.GlobalFunctions.GetDictionaryItems("TaskStatus");

    // Init the binding source of the statuses.
    BindingSource bsFromStatuses = new BindingSource();
    bsFromStatuses.DataSource = taskStatuses;

    //Bind the "From" combo box to binding source.
    cBoxFrom.DataSource = bsFromStatuses.DataSource;
    cBoxFrom.DisplayMember = "Name";
    cBoxFrom.ValueMember = "Key";

    // Init the binding source of the statuses.
    BindingSource bsToStatuses = new BindingSource();
    bsToStatuses.DataSource = taskStatuses;

    //Bind the "From" combo box to binding source.
    cBoxTo.DataSource = bsToStatuses.DataSource;
    cBoxTo.DisplayMember = "Name";
    cBoxTo.ValueMember = "Key";
Run Code Online (Sandbox Code Playgroud)

c# binding combobox winforms

0
推荐指数
1
解决办法
4723
查看次数

WPF转换器属性

我有一个转换器,在代码中我可以设置如下属性:

tabAssumptions.SetBinding(UIElement.VisibilityProperty, new Binding("CurrentPhase.IsWholeScheme") { Converter = new BoolToVisibilityConverter { Inverse = true } });
Run Code Online (Sandbox Code Playgroud)

在XAML中使用时,如何设置转换器的Inverse属性?

wpf binding converter

0
推荐指数
1
解决办法
6439
查看次数

为什么UI在WPF DataGrid绑定期间冻结?

我有DataGrid一些DataGridTemplateColumn,复杂的Binding Converter和一些Style DataTrigger绑定从EntityFramework模型到DataGrid ItemsSource代码后面的一些行.

问题是:在整个Binding过程中UI一直处于冻结DataGrid ItemContainerGenerator 状态ContainersGenerated,直到状态变为,所以解决方案是什么?

wpf user-interface binding datagrid .net-4.0

0
推荐指数
1
解决办法
2559
查看次数

JavaFX:将textProperty从Label绑定到ObservableList的大小

我是FX的新手,对Java不是那么新,所以请耐心等待!我所拥有的是一个使用由ObservableList支持的JavaFX TableView的简单应用程序.

当我第一次启动应用程序时,我生成另一个Thread(来自Application的start方法)来监听对日志文件的更改,并将另一个元素添加到ObservableList中,以便在TableView中可以立即看到该行.我认为在窗口中包含一个包含ObservableList当前大小的Label是有益的.我试图将Label的textProperty绑定到ObservableList的大小.我的第一次尝试产生了:

tableSizeLabel.textProperty().bind(Bindings.size((tableView.getItems())).asString());

但我相信我误解了Bindings API.我意识到ObservableList.size()返回一个常规的int而不是ObservableValue,它甚至可以工作,但我认为Bindings类有一个静态方法为我创建一个.

后端模型将列表作为静态变量包含在内(我省略了listen-for-changes部分):

public class LogFileListener implements Runnable {

private static final ObservableList<SNMPTrap> model = FXCollections.observableArrayList();

@Override
public void run() {
    String line = null;
    try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileLocation)))) {
        while ((line = br.readLine()) != null) {
            model.add(parseTrap(line));
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

public static ObservableList<SNMPTrap> getModel() {
    return model;
}
Run Code Online (Sandbox Code Playgroud)

}

应用类:

public class TableDisplay extends Application {

@Override
public void start(Stage stage) throws Exception {

    new …
Run Code Online (Sandbox Code Playgroud)

java binding javafx javabeans javafx-2

0
推荐指数
1
解决办法
5390
查看次数

无法找到Virtual Binding的结束注释标记

你好我在客户端有下一部分映射,然后我添加了子数组绑定,我开始得到像Uncaught Error这样的 错误:找不到匹配的结束注释标记:ko foreach:{data:$ item.sub,as :'s'}

<tbody>
    <!-- ko foreach: {data: reportData, as: 'item'} -->
    <tr>
        <td data-bind="text: item.statDate">                        
        </td>
        <td>
            <span data-bind="text: item.newRegisteredUsers"></span>
            <table>
                <!-- ko foreach: {data: $item.sub, as: 's'} -->
                <tr>
                    <td data-bind="text: s.name"></td>
                    <td data-bind="text: s.amount"></td>                                
                </tr>
                <!-- /ko -->
            </table>
        </td>
        <td data-bind="text: item.text"></td>                           
    </tr>
    <!-- /ko -->
</tbody>
Run Code Online (Sandbox Code Playgroud)

问题是什么 ?谢谢.

javascript binding knockout.js

0
推荐指数
1
解决办法
932
查看次数

如何绑定DataGridComboBoxColumn WPF的数组

我有一个带Combobox的DataGrid

<DataGridComboBoxColumn Header="Header 2" ItemsSource="{Binding Pet}">
Run Code Online (Sandbox Code Playgroud)

基于MVVM模式的项目.当我尝试在TextColumn上显示数据时,它可以工作

<DataGridTextColumn Header="Header 1" Binding="{Binding ID}" />
Run Code Online (Sandbox Code Playgroud)

但是,我不知道,如何绑定DataGridComboBoxColumn的数据.

型号代码:

    public string ID
    {
        get { return _id; }
        set { _id = value; NotifyPropertyChanged("ID"); }
    }
    public string[] Pet
    {
        get { return _pet; }
        set { _pet = value; NotifyPropertyChanged("Pet"); }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# wpf binding mvvm

0
推荐指数
1
解决办法
1049
查看次数

在代码后面绑定静态属性

我试图按照这篇文章,唯一的区别是我在后面的代码中创建和绑定控件.不幸的是它不起作用.这是我的示例代码:

 public partial class ShellWindow
 {
      private static Visibility progressbarVisibility = Visibility.Collapsed;
      public static Visibility ProgressbarVisibility
      {
           get { return progressbarVisibility; }
           set
           {
               if (progressbarVisibility == value) return;
               progressbarVisibility = value;
               RaiseStaticPropertyChanged("ProgressbarVisibility");
           }
      }
      public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
      public static void RaiseStaticPropertyChanged(string propName)
      {
           EventHandler<PropertyChangedEventArgs> handler = StaticPropertyChanged;
           if (handler != null)
               handler(null, new PropertyChangedEventArgs(propName));
     }
}
Run Code Online (Sandbox Code Playgroud)

我这样绑定

var binding = new Binding("ShellWindow.ProgressbarVisibility") { Mode = BindingMode.TwoWay };
       progressbar = new CircularProgressBar ();
  progressbar.SetBinding(VisibilityProperty,
                             binding);
Run Code Online (Sandbox Code Playgroud)

我想我错过了什么,但我不确定我错在哪里.任何帮助都会很棒.

c# wpf xaml binding

0
推荐指数
1
解决办法
1402
查看次数

mvvmcross ios方法绑定(RIO)

有没有办法在iOS中使用MVVMCross 实现方法绑定?我无法在vids或教程中看到这样的绑定示例......

ImageNavigationViewModel:

    public void NavigateLeft()
    {
        if (!this.HasLeftSisters.Value)
        {
            return;
        }

        this.currentNodeIndex--;
        this.Update();
    }
Run Code Online (Sandbox Code Playgroud)

ImageNavigationView:

private UIButton navigateLeftButton;
...

var set = this.CreateBindingSet<ImageNavigationView, ImageNavigationViewModel>();
set.Bind(this.navigateLeftButton).To(vm => vm.NavigateLeft);
Run Code Online (Sandbox Code Playgroud)

我有一个编译时错误,因为它期望一个对象(ICommand).

我也试过这个:

set.Bind(this.navigateLeftButton).To("NavigateLeft");
Run Code Online (Sandbox Code Playgroud)

并且有运行时错误:无法为绑定TouchUpInside为NavigateLeft创建目标绑定.

我最终在我的视图模型中添加了一个ICommand,这有点令人失望,因为我在Android中找到"方法绑定".

binding ios mvvmcross

0
推荐指数
1
解决办法
728
查看次数