我有以下City
课程.每个城市对象都包含一个字典,其中的键是语言标签(例如:"EN","DE","FR"......),哪些值是相应语言中的城市名称(例如:罗马/罗马等) .
public class City:
{
private IDictionary<string, string> localizedNames = new Dictionary<string, string>(0);
public virtual IDictionary<string, string> Names
{
get { return localizedNames ; }
set { localizedNames = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
无论语言如何,大多数城市都有相同的名称,因此City
构造函数确实创建了英文映射:
public City(string cityName)
{
this.LocalizedNames.Add("EN", cityName);
}
Run Code Online (Sandbox Code Playgroud)
这里有一个问题:有没有办法通过内联初始化添加其他值?
我尝试了以下不同的变体,没有语义成功(不编译):
AllCities.Add(new City("Rome") { Names["DE"] = "Rom" };
Run Code Online (Sandbox Code Playgroud)
我也尝试创建一个新的Dictionary,但这显然会覆盖"EN"参数:
AllCities.Add(new City("Rome") { Names = new Dictionary<string, string>() { { "DE", "Rom" } } };
Run Code Online (Sandbox Code Playgroud)
有谁知道这是否可能?
让我们考虑两个使用相同布局的视图:
而不是两次定义正确的部分,我想知道我是否可以创建一个PartialView直接从布局页面链接.
问题是部分视图从正在呈现的视图中隐含地继承了它们的模型.由于每个视图都有自己的模型,因此我在局部视图中最终会出现模型类型不匹配的情况.
从这里我看到两个解决方案:
所以这里是问题:
非常感谢,TB.
我正在使用jQueryMobile(v1.4.0)可折叠集/手风琴来显示元素及其内容的列表,如此jsFiddle所示.
<div id="List" data-role="collapsible-set">
<div data-role="collapsible" data-content-theme="c">
<h3>Lorem ipsum 1</h3>
<p>Suspendisse neque...</p>
</div>
<div data-role="collapsible" data-content-theme="c">
<h3>Lorem ipsum 2</h3>
<p>Lorem ipsum...</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是当项目的内容长于屏幕的长度时滚动.
例如在小提琴中:
=>关闭第一个项目并打开第二个项目,但页面滚动不会改变,您现在看到第二个项目内容的结束.
因此我的问题是:是否有一种聪明的方法来强制页面设置屏幕顶部第二项的"标题"?
谢谢,T.
javascript mobile scroll jquery-mobile jquery-mobile-collapsible
我目前正在开发一个Phonegap应用程序,在使用Windows Phone 8进行测试时遇到以下问题(左下方截图):应用程序栏未被删除并留下很大的空白区域.
<meta name="viewport" content="width=device-width, height=device-height">
Run Code Online (Sandbox Code Playgroud)
所以你必须使用"ms"预标记再次定义它:
@-ms-viewport {
height: device-height;
width: device-width;
}
Run Code Online (Sandbox Code Playgroud)
但这样做会让应用程序的扩展变得混乱.知道发生了什么事吗?
这里是之前的截图:
我正在尝试使用 GraphViz 显示带有图像和标签的图表。我想在图像下显示标签(参见labelloc="b"
图表上的选项),但不知何故它不起作用。标签和图像重叠。
知道我缺少什么吗?
下面是我正在使用的 DOT 代码和当前结果。
谢谢!
digraph {
graph [compound=true, labelloc="b"];
node [shape=box];
edge [dir=none];
Label1[label="Label1",image="images/Avatar1.png"];
Label2[label="Label2",image="images/Avatar2.png"];
Label3[label="Label3",image="images/Avatar3.png"];
{
rank=same;
Label1 -> h0 -> Label2;
h0[shape=circle,label="",height=0.01,width=0.01];
}
{
h0_0;
h0_0[shape=circle,label="",height=0.01,width=0.01];
}
h0 -> h0_0;
h0_0 -> Label3;
}
Run Code Online (Sandbox Code Playgroud) 我们假设我有:
Get<T>
IEntity
,IValue
Entity
- > IEntity
,Value
- > IValue
等.=>该Get<T>
方法是否有办法仅允许接口作为泛型类型?
Get<IEntity>(42); //Allowed
Get<Entity>(42); //Compiler error
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案如下:
Get<T>
具有Type约束的通用方法where T: IPersistable
(以防止大多数类型作为参数传递)IPersistable
该函数主动检查类型:
public T Get<T>(long id) where T : IPersistable
{
if (typeof (T) == typeof (IEntity))
return (T) EntityDao.Get(id);
if (typeof (T) == typeof (IValue))
return (T) ValueDao.Get(id);
//...
throw new TechnicalException("Type not supported");
}
Run Code Online (Sandbox Code Playgroud)
=>问题是:
IPersistable
in,但不是真的< - 真的让我烦恼:(编辑:我正在考虑这样的限制,以避免我班上的人口过剩.
我在那个类中有类似8或9个泛型方法的东西,它们都以这种方式工作.直观的做法是@DanielHilgarth建议每种类型只有1种方法.目前可以使用4种或5种类型调用这些方法.但是,这仍然意味着该课程中有32-40种方法. …
c# ×3
asp.net-mvc ×1
cordova ×1
css ×1
dictionary ×1
generics ×1
graphviz ×1
html5 ×1
interface ×1
javascript ×1
mobile ×1
scroll ×1
viewbag ×1