我在视图中使用多个按钮,每个按钮都会显示自己的弹出页面.同时单击多个按钮时,它一次转到不同的弹出页面.
我创建了一个包含3个按钮的示例内容页面(每个按钮都转到不同的弹出页面)来演示此问题:
XAML页面:
<ContentPage.Content>
<AbsoluteLayout>
<!-- button 1 -->
<Button x:Name="button1" Text="Button 1"
BackgroundColor="White" Clicked="Button1Clicked"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.3, 0.5, 0.1"/>
<!-- button 2 -->
<Button x:Name="button2" Text="Button 2"
BackgroundColor="White" Clicked="Button2Clicked"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.5, 0.5, 0.1"/>
<!-- button 3 -->
<Button x:Name="button3" Text="Button 3"
BackgroundColor="White" Clicked="Button3Clicked"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.7, 0.5, 0.1"/>
<!-- popup page 1 -->
<AbsoluteLayout x:Name="page1" BackgroundColor="#7f000000" IsVisible="false"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.5, 1.0, 1.0">
<BoxView Color="Red"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.5, 0.75, 0.3"/>
<Label Text="Button 1 clicked" TextColor="White"
HorizontalTextAlignment="Center"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.45, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试写一个"简单"的 Generic Get<T>
; 延期
System.Runtime.MemoryCache
.
为什么"简单"?因为我通常在缓存之前知道对象的真实类型,所以当我从缓存中检索它时,我不会以不可预测的方式转换它.
例如:如果布尔"true"值存储在cacheKey"id"的缓存中,那么
Get<string>("id") == "true";
Get<int>("id") == 1; // any result > 0 is okay
Get<SomeUnpredictableType> == null; // just ignore these trouble conversions
Run Code Online (Sandbox Code Playgroud)
这是我不完整的实现:
public static T DoGet<T>(this MemoryCache cache, string key) {
object value = cache.Get(key);
if (value == null) {
return default(T);
}
if (value is T) {
return (T)value;
}
// TODO: (I'm not sure if following logic is okay or not)
// 1. if T and value …
Run Code Online (Sandbox Code Playgroud) 我有一个View Model
由多个项目引用或Views
.
由于API,一些View
项目是,async
而另一些则不是.
该View
项目将其接口的实现注入到View Model
使用IOC容器中.
考虑这个代码的最小例子
界面:
public interface IDatabase
{
Task<Data> GetData();
}
Run Code Online (Sandbox Code Playgroud)
在View Model
等待GetData方法:
public class DisplayDataViewModel
{
private readonly IDatabase _database
public DisplayDataViewModel(IDatabase database)
{
_database = database;
}
private async Task GetDataFromDatabase()
{
Data data = await _database.GetData();
// do something with data...
}
}
Run Code Online (Sandbox Code Playgroud)
Asynchronous View
project使用Async函数来获取数据
public class AsynchronousViewDataBase : IDatabase
{
public async Task<Data> GetData()
{
return …
Run Code Online (Sandbox Code Playgroud) 我想得到列表视图中所选项目相对于屏幕的坐标(矩形边界:x,y,宽度和高度)(假设列表视图填满整个屏幕),这样我就可以在该位置创建一个对象,动画显示我的Xamarin.Forms应用程序中所选项目的一些细节.
xaml中的listview:
<ListView ItemTapped="ItemTapped"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.5, 1.0, 1.0">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell Height="50">
<AbsoluteLayout>
<Label Text="{Binding Info}"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.1, 0.5, 0.7, 0.5"/>
</AbsoluteLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
ItemTapped事件的c#代码:
void ItemTapped(object sender, EventArgs args)
{
var listView = (ListView)sender; // the listview
var selectedItem = args.Item; // the selected item
// need to get selected item coordinates for the animation
var selectedItemBounds = ...
...
}
Run Code Online (Sandbox Code Playgroud)
最终我想在带有listview的Xamarin.Forms中创建这样的东西(listview中的对象数量不同):
我正在添加toolbar item
到Page.ToolbarItems
列表中,但我想在某些之间添加一个行分隔符toolbar item
.我可以添加一个toolbar item
带有线条图像的新图像,但是Action
当按下该线条时我需要阻止它,并且它不允许我使用它null
.它看起来也不太理想.
请注意,每个ToolbarItem
都是通过C#代码添加的,而不是通过Xaml添加的.
这里有一些伪代码作为我现在的例子:
if(!ToolbarItems.Any())
{
ToolbarItems.Add(new ToolbarItem("Page 1", null, NavigateToPage1(), ToolbarItemOrder.Secondary, 0);
ToolbarItems.Add(new ToolbarItem("Page 2", null, NavigateToPage2(), ToolbarItemOrder.Secondary, 0);
// <Insert Separator Here>
if(boolVal) {
ToolbarItems.Add(new ToolbarItem("Page 3", null, NavigateToPage3(), ToolbarItemOrder.Secondary, 0);
}
ToolbarItems.Add(new ToolbarItem("Page 4", null, NavigateToPage4(), ToolbarItemOrder.Secondary, 0);
ToolbarItems.Add(new ToolbarItem("Page 5", null, NavigateToPage5(), ToolbarItemOrder.Secondary, 0);
// <Insert Separator Here>
ToolbarItems.Add(new ToolbarItem("Page 6", null, NavigateToPage6(), ToolbarItemOrder.Secondary, 0);
}
Run Code Online (Sandbox Code Playgroud) 问题:数据更改但ListView不更新
我有一个ListS,其ItemsSource设置为
<ListView ItemsSource="{Binding ContactsGrouped}"
Run Code Online (Sandbox Code Playgroud)
单击按钮时,我更新查询以仅返回包含字母"Je"的记录.我可以看到正确的东西被返回,并且ContactsGrouped正在更新,但UI不会改变.
public ObservableCollection<Grouping<string, Contact>> ContactsGrouped { get; set; }
Run Code Online (Sandbox Code Playgroud)
分组看起来像这样:
public class Grouping<K, T> : ObservableCollection<T>
{
public K Key { get; private set; }
public Grouping ( K key, IEnumerable<T> items )
{
Key = key;
foreach ( var item in items )
this.Items.Add( item );
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于我正在使用ObservableCollections,我希望该列表能够重绘.我错过了一些明显的东西吗
我有一个在 Visual Studio 中制作的网络应用程序。每当我导航到它时,我都会收到 404。我可以访问例如:“xyz.net/res/image.png”,但是我不能“default.aspx”。
默认文档:
捆绑:
应用程序池:
当我导航到端口 80 上的本地主机时,会发生这种情况:
我之前已经使用 IIS 设置并运行了一个 Web 服务器,但从那以后我重新安装了 Windows,但我无法弄清楚。在我修改它之前,我可以访问本地主机。文件路径似乎是正确的,但我认为否则无法访问 png 文件。任何帮助表示赞赏。
重要提示:这个问题已经很长了,如果这是你第一次阅读这篇文章我建议你从底部开始,因为解决方案是在一个回合的方式,但代码有点臭.
阅读完模板教程后,我能够更改现有类以支持泛型类型.但是,许多对象已经依赖于此,所以我正在寻找一种使方法通用而不是整个类的方法.
我尝试了以下内容,但看起来不支持此行为.
// foobar1.h
// Don't want the entire class to be generic.
//template<class T>
class FooBar1
{
public:
template<class T> T Foo();
}
// foobar2.h
class FooBar2 : public FooBar1
{
}
// foobar1.cpp
template<class T>
T FooBar1::Foo()
{
return something;
}
// test.cpp
FooBar1 fb1;
FooBar2 fb2 = fb1.Foo<FooBar2>();
Run Code Online (Sandbox Code Playgroud)
这应该不起作用,还是我在其他地方遇到的一个错误?
未定义的引用
FooBar2 Foo<FooBar2>()
为了实现我想要实现的目标,我在C#中如何做到这一点......
public class FooBar1
{
public T Foo<T>()
where T : FooBar1
{
return something;
}
}
public class FooBar2 : …
Run Code Online (Sandbox Code Playgroud) 我有以下课程:
public class HelperClass
{
HandleFunction<T>(Func<T> func)
{
// Custom logic here
func.Invoke();
// Custom logic here
}
// The class i want to test
public class MainClass
{
public readonly HelperClass _helper;
// Ctor
MainClass(HelperClass helper)
{
_helper = helper;
}
public void Foo()
{
// Use the handle method
_helper.HandleFunction(() =>
{
// Foo logic here:
Action1();
Action2(); //etc..
}
}
}
Run Code Online (Sandbox Code Playgroud)
我只想测试MainClass
.我HelperClass
在测试中使用RhinoMocks进行模拟.
问题是,虽然我不感兴趣测试HandleFunction()
我感兴趣的方法Action1
,Action2
以及HandleFunction()
调用时发送的其他操作.
我如何模拟HandleFunction() …
我正在使用以下类从Spark编码器创建bean
Class OuterClass implements Serializable {
int id;
ArrayList<InnerClass> listofInner;
public int getId() {
return id;
}
public void setId (int num) {
this.id = num;
}
public ArrayList<InnerClass> getListofInner() {
return listofInner;
}
public void setListofInner(ArrayList<InnerClass> list) {
this.listofInner = list;
}
}
public static class InnerClass implements Serializable {
String streetno;
public void setStreetno(String streetno) {
this.streetno= streetno;
}
public String getStreetno() {
return streetno;
}
}
Encoder<OuterClass> outerClassEncoder = Encoders.bean(OuterClass.class);
Dataset<OuterClass> ds = spark.createDataset(Collections.singeltonList(outerclassList), outerClassEncoder)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Exception …
Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×2
apache-spark ×1
async-await ×1
asynchronous ×1
c++ ×1
caching ×1
generics ×1
iis ×1
java ×1
memorycache ×1
rhino-mocks ×1
server ×1
spark-java ×1
templates ×1
toolbar ×1
toolbaritems ×1
unit-testing ×1
xamarin ×1