绑定属性设置器未被调用(Bound Property Setter not getting Called)
我遇到以下情况的问题(为简洁起见,代码剪切)。 基本上,当设置依赖项属性时,我的用户控件属性的Setter没有被调用,我需要解决这个问题。
我在View.xaml中有以下代码
<Filter:Filter x:Name="ProductFilter" PrimaryItemSource="{Binding CarrierProducts}" />
在View.xaml.cs中
public ProductPricing() { InitializeComponent(); ViewModel.Filter.ProductPricing vm = new ViewModel.Filter.ProductPricing(); this.DataContext = vm; }
在我的ViewModel中,我公开了一个属性
public ObservableCollection<Model.FilterItem> _carrierProducts; public ObservableCollection<Model.FilterItem> CarrierProducts { get { return _carrierProducts; } set { if (_carrierProducts != value) { _carrierProducts = value; RaisePropertyChanged("CarrierProducts"); } } }
最后,过滤器用户控件的定义如下。
public static readonly DependencyProperty PrimaryItemSourceProperty = DependencyProperty.Register("PrimaryItemSource", typeof(ObservableCollection<Model.FilterItem>), typeof(Filter), new PropertyMetadata(null)); public ObservableCollection<Model.FilterItem> PrimaryItemSource { get { return (ObservableCollection<Model.FilterItem>)GetValue(PrimaryItemSourceProperty); } set { SetValue(PrimaryItemSourceProperty, value); ComboBox combo = _filters.ElementAt(0); FilterSourceChange(combo, value); } }
由于某种原因,设置了PrimaryItemSource属性,但未调用Setter。 我是否必须向PropertyMetadata对象添加一个PropertyChange事件来处理这个问题,因为这似乎是很多简单的代码。
I have a problem with the following scenario (code cut for brevity). Basically the Setter of my User Control Property isn't being called when the dependency property is set and I need to get around this.
I have the following code in my View.xaml
<Filter:Filter x:Name="ProductFilter" PrimaryItemSource="{Binding CarrierProducts}" />
In the View.xaml.cs
public ProductPricing() { InitializeComponent(); ViewModel.Filter.ProductPricing vm = new ViewModel.Filter.ProductPricing(); this.DataContext = vm; }
In my ViewModel I expose a property
public ObservableCollection<Model.FilterItem> _carrierProducts; public ObservableCollection<Model.FilterItem> CarrierProducts { get { return _carrierProducts; } set { if (_carrierProducts != value) { _carrierProducts = value; RaisePropertyChanged("CarrierProducts"); } } }
Finally the Filter User control is defined like so.
public static readonly DependencyProperty PrimaryItemSourceProperty = DependencyProperty.Register("PrimaryItemSource", typeof(ObservableCollection<Model.FilterItem>), typeof(Filter), new PropertyMetadata(null)); public ObservableCollection<Model.FilterItem> PrimaryItemSource { get { return (ObservableCollection<Model.FilterItem>)GetValue(PrimaryItemSourceProperty); } set { SetValue(PrimaryItemSourceProperty, value); ComboBox combo = _filters.ElementAt(0); FilterSourceChange(combo, value); } }
For some reason the PrimaryItemSource property is set but the Setter doesn't get called. Do I have to add a PropertyChange event to the PropertyMetadata object to handle this as that seems like a lot of code for something simple.
原文:https://stackoverflow.com/questions/2237981
最满意答案
比朱主任的解决方案效率低下和聪明,但可能更简单一些:
import pandas as pd from StringIO import StringIO with open ('foo.csv', 'r') as myfile: data = myfile.read().split('\n\n') pieces = [pd.read_csv(StringIO(x),sep=' ') for x in data] print pd.concat(pieces,axis=1) h1 h2 h3 h4 h5 h6 0 11 12 13 14 15 16 1 10 10 10 10 10 10
Less efficient and clever than CT Zhu's solution but maybe a little simpler:
import pandas as pd from StringIO import StringIO with open ('foo.csv', 'r') as myfile: data = myfile.read().split('\n\n') pieces = [pd.read_csv(StringIO(x),sep=' ') for x in data] print pd.concat(pieces,axis=1) h1 h2 h3 h4 h5 h6 0 11 12 13 14 15 16 1 10 10 10 10 10 10
相关问答
更多-
这应该做的工作: import glob import os outfile = open('output.csv', 'w') outfile.write('X ; Y ; Z ; filename\n') for filename in glob.glob('*.csv'): if filename == 'output.csv': # Skip the file we're writing. continue with open(filename, 'r') as infile: ...
-
要读取脚本以外的目录,需要提供python目录的绝对路径。 Windows样式:c:\ path \ to \目录 * nix风格:/ path / to /目录 无论哪种情况,它都是一个字符串。 您没有指定目标文件夹是否位于同一目录中。 如果他们是,那会更容易一些。 import os path_to_parent = "/path/to/parent" for folder in os.listdir(path_to_parent): for csv_file in os.listdir(os ...
-
您应该使用sparkContext的textFile api来读取文本文件,然后filter 标题行 val rdd = sc.textFile("filePath") val header = rdd .filter(line => line.toLowerCase.contains("#fields:")) .map(line => line.split(" ").tail) .first() 应该是这样的。 现在,如果你想创建一个数据框,那么你应该解析它以形成schema ,然后fil ...
-
用多个头读取CSV(Read CSV with multiple Headers)[2022-09-01]
比朱主任的解决方案效率低下和聪明,但可能更简单一些: import pandas as pd from StringIO import StringIO with open ('foo.csv', 'r') as myfile: data = myfile.read().split('\n\n') pieces = [pd.read_csv(StringIO(x),sep=' ') for x in data] print pd.concat(pieces,axis=1) h1 h2 ... -
使用多个JSON和各自的标题生成单个CSV文件(Generate single CSV file with multiple JSON and with their respective headers)[2022-03-11]
我解决了这个问题。 我创建了具有标题名称的新对象,并将其插入我们下载的主json对象中。 喜欢这个: $scope.subDataArr = []; $scope.subData = response.data.subData; for(var i=0; i对于手动制作160个盒子整数的初学者效率非常低。 尝试使用数组。 int[] box; // declare numbers as an int array of any size box = new int[160]; //New box array for 0-159 并且您可以为值执行相同的操作,即值[]数组或我将使用框而不是int,其中struct具有两个整数。 struct SimpleStruct { int name, value; } SimpleStruct[] box; // dec ...试试这个,将数据存储在数组中并打印出来。 $file = new SplFileObject('file1.csv'); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $row) { $new_array[] = $row; } print_r($new_array); OUTPUT Array ( [0] => A [1] => B [2] => C [3] => D [4] => 1 ...如何读取多个csv并合并(how to read multiple csv and merge)[2022-09-05]
根据您提到的文件大小,您可能会在JVM中耗尽内存 。 这可能是您最大的800个MB的文件没有加载到内存中的原因。 您不仅要将800MB加载到内存中,而且还要添加正在使用的阵列的开销。 换句话说,你使用1600MB + 每个阵列的所有额外开销成本,这变得相当大 。 我敢打赌,假设文件格式在两种情况下都是完美的,那么你超出了内存限制。 虽然我无法确认,因为我不知道您的JVM,您的内存消耗,也没有必要的资产来解决这些问题,但由您决定是否是这种情况。 另外,我不知道 - 也许我正在读你的代码,但它似乎不会做我认为你 ...合并多个CSV文件的单列时如何忽略标题?(How to ignore headers when merging single column of multiple CSV files?)[2022-03-17]
您可以通过在FNR上添加条件(每个文件的记录号),使用awk,几乎就像您已经完成的那样: awk -F, 'FNR > 1 {print $3}' *.csv > merged.csv You can do it with awk, nearly as you have already done, by adding a condition on the FNR (the record number per file): awk -F, 'FNR > 1 {print $3}' *.csv > merge ...相关文章
更多- getOutputStream() has already been called for this response 问题
- could not find system property or JNDI
- mybatis There is no getter for property named 'xx' in 'class java.lang.String
- hibernate值类型集合映射-一个顾客多个地址
- RelativeLayout代码中设置属性
- 第四章 Controller接口控制器详解(6)——跟着开涛学SpringMVC
- 页面获取ACTION的属性,页面不能弹出JS
- Snowman children
- Sunset Shambhala
- 请教如何在eclipse中将maven项目部署到centos服务器上去?
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。