Tag: 转换器

对于不是从0开始的缓冲区,GetBytes有一种不太痛苦的方法吗?

我不得不处理项目中的原始字节,我需要基本上做这样的事情 byte[] ToBytes(){ byte[] buffer=new byte[somelength]; byte[] tmp; tmp=BitConverter.GetBytes(SomeShort); buffer[0]=tmp[0]; buffer[1]=tmp[1]; tmp=BitConverter.GetBytes(SomeOtherShort); buffer[2]=tmp[0]; buffer[3]=tmp[1]; } 我觉得这是错的,但我找不到更好的办法。 有没有更简单的方法?

WPF转换器:文化来自哪里

我创建了一个WPF转换器类: public class DoubleConverter : IValueConverter { public object Convert(object value, Type TargetType, object parameter, CultureInfo culture) { //blah blah } } 我想知道谁设置了传递的culture参数。 我希望它与当前的Windows设置相同,但它似乎有所不同。 任何人?

如何创建转换器像“FindAncestor”一样工作以检查IsTypeFound?

我想创建一个转换器,在其中我将传递一个类型来查找,在元素的父层次结构中,如果找到这样的类型,它应该返回true,否则返回false。 到目前为止,我尝试下面的代码,它正在工作。 但现在只有我有问题是它找到元素父层次结构,直到元素的父元素为空。 我想给祖先级别找到父层次结构中的元素。 那么如何才能将Ancestor Level赋予转换器? 我使用LayoutHelper.cs类来查找父层次结构中的元素,如下所示。 public class LayoutHelper { public static FrameworkElement FindElement(FrameworkElement treeRoot, Type type, int AncestorLevel) { FrameworkElement parentElement = VisualTreeHelper.GetParent(treeRoot) as FrameworkElement; int level = 1; while (parentElement != null && level <= AncestorLevel) { if (parentElement.GetType() == type) return parentElement; else parentElement = VisualTreeHelper.GetParent(parentElement) as FrameworkElement; level++; } return […]

将非常大的文件从xml转换为csv

目前我正在使用以下代码片段将带有XML数据的.txt文件转换为.CSV格式。 我的问题是,目前这适用于大约100-200 mbs的文件,并且转换时间非常短(最多1-2分钟),但是我现在需要它来处理更大的文件(每个1-2 GB)文件)。 目前该程序冻结了计算机,使用此function转换大约需要30-40分钟。 不知道我将如何继续更改此function。 任何帮助将不胜感激! string all_lines = File.ReadAllText(p); all_lines = “” + all_lines + “”; XmlDocument doc_all = new XmlDocument(); doc_all.LoadXml(all_lines); StreamWriter write_all = new StreamWriter(FILENAME1); XmlNodeList rows_all = doc_all.GetElementsByTagName(“XML”); foreach (XmlNode rowtemp in rows_all) { List children_all = new List(); foreach (XmlNode childtemp in rowtemp.ChildNodes) { children_all.Add(Regex.Replace(childtemp.InnerText, “\\s+”, ” “)); } […]

WPF中类的默认ValueConverter

我即将开始我的一个新项目,目前正在评估一些本地化,模块化等技术。 我(至少在我看来)有一个非常好的本地化方法,但现在我很难找到一个很好的数据绑定解决方案。 我想将textfields等的值(一般的UIElements)绑定到表单的DataContext中的特定方法。 该方法如下所示: public void GetValue(string name) 其中name是“node / subnode / subsubnode”forms的“路径”。 我想过使用ValueConverter进行绑定,直到现在这个问题还算得很好。 我的绑定表达式看起来像这样: {Binding Path=Localization, Converter={StaticResource LocalizationConverter}, ConverterParameter=PrismBreak/Shell.xaml/New} 我认为这个绑定表达虽然做了它的工作,却有点用于每一个UIElement。 所以我想如果可以为某种类型定义默认的ValueConverter( – >只要该类型绑定到使用ValueConverter的某个地方)。 这可能在WPF中吗? 如果不可能有任何其他好方法绑定到具有动态参数的方法? 在此先感谢和最诚挚的问候, 克里斯

将原始字节数据转换为float

我有这个代码用于将byte[]转换为float[] 。 public float[] ConvertByteToFloat(byte[] array) { float[] floatArr = new float[array.Length / sizeof(float)]; int index = 0; for (int i = 0; i < floatArr.Length; i++) { floatArr[i] = BitConverter.ToSingle(array, index); index += sizeof(float); } return floatArr; } 问题是,我通常得到NaN结果! 为什么会这样? 我检查了byte[]是否有数据,数据似乎没问题。 如果它有帮助,值的一个例子是: new byte[] { 231, 255, 235, 255, } 但是这会在转换为float后返回NaN (非数字)。 可能是什么问题呢? 还有其他更好的方法将byte[]转换为float[]吗? […]

如何将绑定中的FallbackValue设置为外部图像文件的路径?

我正在尝试设置FallbackValue以防万一我的转换器无法调用,但我不知道该怎么做。 转换器中外部图像的路径看起来像那样,当LatestPosition!= null时,图像以适当的方式设置。 private static readonly ImageSource Dev1 = new BitmapImage(new Uri(“/Pictures/dev1.png”, UriKind.Relative)); private static readonly ImageSource Dev2 = new BitmapImage(new Uri(“/Pictures/dev2.png”, UriKind.Relative));

WPF转换器在文本更改时实时更新文本框的背景颜色

我有两个文本框用于用户的名字和第二个名字,我创建了一个转换器,当文本等于特定字符串时,它会更改文本框的背景颜色。 我遇到的问题是文本框只会在运行时更新,并且在我更改文本时不会更新文本框。 XAML: 转换器代码: public class StaffNameToBackgroundColourConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var staff = (Staff) value; if (staff.Forename == “Donald” && staff.Surname == “Duck”) { return “Yellow”; } else { return “White”; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { […]

为什么System.Convert有ToDateTime接受DateTime?

// // Summary: // Returns the specified System.DateTime object; no actual conversion is performed. // // Parameters: // value: // A date and time value. // // Returns: // value is returned unchanged. public static DateTime ToDateTime(DateTime value); 为什么System.Convert有ToDateTime接受DateTime? 方法文档说明值保持不变。

当字符串为空时,将字符串值替换为’0′

我从文本框中取一个值并将其转换为十进制。 但是,文本框值可能为空。 那么,我怎么能从文本框中处理空字符串呢? 不幸的是,我有大约50个文本框要处理,所以像’检查带有IF条件的空’这样的答案对我没有帮助。 如果我使用所有这些IF条件,我的代码将看起来很难看。 我有这个 Convert.ToDecimal(txtSample.Text) 为了处理空值,我做了这个 Convert.ToDecimal(txtSample.Text = string.IsNullOrEmpty(txtSample.Text) ? “0” : txtSample.Text) 但是,上面的代码在文本框中显示“0”。 用户不希望看到’0’。 另一种解决方案是将文本框值转换为变量并转换变量,如下所示。 string variable = txtSample.Text; Convert.ToDecimal(variable = string.IsNullOrEmpty(variable) ? “0” : variable) 但同样,我不想定义大约50个变量。 我正在寻找一些代码,在转换过程中处理空值而不添加额外的代码行。