我有以下课程:
[Serializable]
public class SomeModel
{
[XmlElement("SomeStringElementName")]
public string SomeString { get; set; }
[XmlElement("SomeInfoElementName")]
public int SomeInfo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
哪个(当填充一些测试数据时)和使用XmlSerializer.Serialize()进行序列化会产生以下XML:
<SomeModel>
<SomeStringElementName>testData</SomeStringElementName>
<SomeInfoElementName>5</SomeInfoElementName>
</SomeModel>
Run Code Online (Sandbox Code Playgroud)
我需要的是:
<SomeModel>
<SomeStringElementName Value="testData" />
<SomeInfoElementName Value="5" />
</SomeModel>
Run Code Online (Sandbox Code Playgroud)
有没有办法在不编写自己的自定义序列化代码的情况下将其指定为属性?
我已经在StackOverflow和其他博客上阅读了关于在何处实现INotifyPropertyChanged的一些争论,但似乎有些情况下你必须在Model上实现它.这是我的情景 - 我正在寻找关于我的结论的反馈或我的方法是错误的.
我正在使用ObservableDictionary(ObservableDictionary)的这个实现,因为我需要使用密钥进行高性能的查询.
在这本词典中,我放置了Model对象的集合.
在我的VM中,我声明了一个字典的实例(Books),并在XAML中绑定它.
<tk:DataGrid AutoGenerateColumns="False" Grid.Row="1" ItemsSource="{Binding Mode=TwoWay, Path=Books.Store}" Grid.ColumnSpan="2" Margin="3">
<tk:DataGrid.Columns>
<tk:DataGridTextColumn Binding="{Binding Mode=TwoWay, Path=Value.Name}" MinWidth="100" Header="Name" />
<tk:DataGridTextColumn Binding="{Binding Mode=TwoWay, Path=Value.Details}" MinWidth="300" Header="Details" />
</tk:DataGrid.Columns>
</tk:DataGrid>
Run Code Online (Sandbox Code Playgroud)
如果我在VM for Books上实现INotifyPropertyChanged并在代码中更改Book名称的值,则不会更新UI.
如果我在VM for Store上实现INotifyPropertyChanged并在代码中更改Book名称的值,则不会更新UI.
如果我在Model上实现INotifyProperyChanged并在代码中更改Book名称的值,则更新UI.
在第一种情况下不会触发Changed事件,因为未调用Dictionary setter,它的Item(a Book)是.
我错过了什么,因为如果这是正确的解释,如果我想要我的模型的一致通知,无论它们是直接来自XAML还是通过某种集合,我总是希望模型实现INotifyProperyChanged.
顺便说一句,除了dll参考,我个人没有看到INotifyPropertyChanged作为UI函数 - 认为它应该在更通用的.net命名空间中定义 - 我的2美分.
编辑在这里开始:
我们有一个很好的语义辩论,我错过了我的问题的核心,所以这里再次发布,但有一个非常简单的MVVM示例说明我的问题.
型号:
public class Book
{
public string Title { get; set; )
public List<Author> Authors { get; set; }
}
public class Author
{
public string Name { get; …Run Code Online (Sandbox Code Playgroud) data-binding wpf observablecollection mvvm inotifypropertychanged
我有一个zip文件加载到内存中(没有它持久存储在磁盘上).该zip文件包含jpg图像.我试图将每个jpg上传到s3但是我收到了错误.
# already have an opened zipfile stored in zip_file
# already connected to s3
files = zip_file.namelist()
for f in files:
im = io.BytesIO(zip_file.read(f))
s3_key.key = f
s3_key.set_contents_from_stream(im)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
BotoClientError:BotoClientError:s3不支持分块传输
我究竟做错了什么?
这里有一个类似的问题,但该解决方案在 sbt v1.x 中不起作用
在 build sbt 中,详细记录了如何在添加时排除依赖项libraryDependencies:
libraryDependencies += "log4j" % "log4j" % "1.2.15" exclude("javax.jms", "jms")
Run Code Online (Sandbox Code Playgroud)
或防止传递依赖:
libraryDependencies += "org.apache.felix" % "org.apache.felix.framework" % "1.8.0" intransitive()
Run Code Online (Sandbox Code Playgroud)
但我的问题是dependsOn在像这样的多模块项目中声明子模块的依赖项时如何(以及是否)可以做到这一点:
lazy val core = project.dependsOn(util)
Run Code Online (Sandbox Code Playgroud)
我将如何做这样的事情(下面示例中的无效代码)以防止通过util以下方式引入传递依赖:
lazy val core = project.dependsOn(util exclude("javax.jms", "jms"))
Run Code Online (Sandbox Code Playgroud)
以及如何,更重要的是,如何排除对多模块项目中另一个子模块的传递依赖util(在sub3同一个 build.sbt 中声明的另一个子模块项目在哪里):
lazy val core = project.dependsOn(util exclude sub3)
Run Code Online (Sandbox Code Playgroud) 在GoogleTV全屏应用中,我可以在媒体控件中呈现当前的直播电视(例如,用户可能正在观看NBC上的House).
由于googleTV中没有自动收报机或侧面应用程序(如SamsumgTV或Yahoo!小部件),我希望允许用户继续在全屏应用程序中观看他们的节目,同时还可以查看简单的应用程序内容.
此外,如果您可以这样做,在开发和测试期间,在模拟器中存根和模拟Live TV Feed的最佳方法是什么.
我能够从zip成功加载图像:
with zipfile.ZipFile('test.zip', 'r') as zfile:
data = zfile.read('test.jpg')
# how to open this using imread or imdecode?
Run Code Online (Sandbox Code Playgroud)
问题是:如何在不保存图像的情况下使用imread或imdecode在opencv中进一步处理?
更新:
这是我得到的预期错误.我需要将'data'转换为opencv可以使用的类型.
data = zfile.read('test.jpg')
buf = StringIO.StringIO(data)
im = cv2.imdecode(buf, cv2.IMREAD_GRAYSCALE)
# results in error: TypeError: buf is not a numpy array, neither a scalar
a = np.asarray(buf)
cv2.imdecode(a, cv2.IMREAD_GRAYSCALE)
# results in error: TypeError: buf data type = 17 is not supported
Run Code Online (Sandbox Code Playgroud) 使用Slick 3.1,如何将多个查询组合成同一类型的单个查询?这不是连接或联合,而是组合查询"段"以创建单个查询请求.这些"段"可以是任何单独有效的查询.
val query = TableQuery[SomeThingValid]
// build up pieces of the query in various parts of the application logic
val q1 = query.filter(_.value > 10)
val q2 = query.filter(_.value < 40)
val q3 = query.sortBy(_.date.desc)
val q4 = query.take(5)
// how to combine these into a single query ?
val finalQ = ??? q1 q2 q3 q4 ???
// in order to run in a single request
val result = DB.connection.run(finalQ.result)
Run Code Online (Sandbox Code Playgroud)
编辑:预期的SQL应该是这样的:
SELECT * FROM "SomeThingValid" WHERE …Run Code Online (Sandbox Code Playgroud) 这段代码有什么问题:
标题:
#include <map>
using namespace std;
template<class T>
class ValueCollection
{
public:
ValueCollection(void);
int getValueCount(void);
map<string, T> Values;
};
Run Code Online (Sandbox Code Playgroud)
执行:
#include "ValueCollection.h"
ValueCollection<class T>::ValueCollection(void)
{
}
int ValueCollection<class T>::getValueCount(void)
{
return Values.size();
}
Run Code Online (Sandbox Code Playgroud)
测试:
#include "ValueCollection.h"
TEST(ValueCollection_TestCases, Default_Constructor_MapIsEmpty)
{
ValueCollection<int>* target = new ValueCollection<int>;
int expected = 0;
int actual = target->getValueCount();
ASSERT_EQ(expected, actual);
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
Error 1 error C2079: 'std::_Pair_base<_Ty1,_Ty2>::second' uses undefined class 'T' c:\program files (x86)\microsoft visual studio 10.0\vc\include\utility 167 1 Refactor01
Run Code Online (Sandbox Code Playgroud) 更新 #2 - 谜团解开
我已经弄清楚了这个问题 - 这是我在 java 内部类中使用关键字static时的误解。我认为静态意味着传统意义上的静态 - 就像 c# 一样。在 Java 中,静态内部类的含义略有不同。我个人会使用 static 以外的不同关键字来达到相同的效果来消除混淆。
这里有几个很好的链接,它们解释了 java 中静态内部类的含义。
很抱歉向大家发送了一场野鹅追逐:)
原帖
在java中我可以写以下内容:
public class UseStaticMembers {
private Holder holder;
holder.txt1 = "text";
holder.txt2 = "text";
CallSomeMethod(holder);
}
static class Holder {
public string txt1;
public string txt2;
}
Run Code Online (Sandbox Code Playgroud)
但是我不能在 C# 中做到这一点。我收到以下错误:“无法声明静态类型‘持有人’的变量”:“私有持有人持有人;”
我怎样才能在 C# 中达到同样的效果(如果可以的话)。
更新 #1
以下是如何使用此模式优化自定义列表适配器的示例。如您所见,我不能仅通过静态类名访问静态成员,而是需要通过变量引用它。它需要传递给标签。
public class WeatherAdapter extends ArrayAdapter<Weather>{
Context context;
int layoutResourceId;
Weather data[] = null;
public WeatherAdapter(Context context, int layoutResourceId, …Run Code Online (Sandbox Code Playgroud) 这是我的小黄瓜:
Scenario Outline: Login using valid email address
Given I have not logged into the current computer
And Username <username> and password <password> is a valid account
When I start the client
And Login using username <username> and password <password>
Then The client should navigate to first time screen
Examples:
| username | password |
| valid001@xyz.com | password001 |
| valid002 | password002 |
Run Code Online (Sandbox Code Playgroud)
这会生成以下步骤文件:
[Binding]
public class UserLoginSteps
{
[Given(@"I have not logged into the current computer")]
public …Run Code Online (Sandbox Code Playgroud)