我想使用FlipView显示一些项目并开始显示特定项目.
为此,我定义了一个视图模型类:
class MyDataContext
{
public MyDataContext()
{
Items = new List<MyClass>();
Items.Add(new MyClass("1"));
Items.Add(new MyClass("2"));
Items.Add(new MyClass("3"));
SelectedItem = Items[1];
}
public List<MyClass> Items { get; set; }
public MyClass SelectedItem { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如您所见,所选项目不是第一项.
现在为XAML:
<FlipView ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}"></FlipView>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序时,翻转视图显示第一个项目,而不是第二个项目.
这是故意的吗?还是一个错误?
我正在尝试为WinRT/Metro应用程序开发自定义控件.
它有一个依赖属性,我希望能够在自定义控件中设置它的值.但是,使用SetValue会中断控件的使用者可能创建的任何绑定.
我找到的解决方案(例如SetCurrentValue)似乎都不适用于WinRT/Metro.这个问题有方法解决吗?
这听起来很简单 - 老实说! - 我试图在这里和其他地方找到解决方案.任何帮助将不胜感激.
binding dependency-properties custom-controls windows-runtime winrt-xaml
我正在用C#编写基于Windows Metro XAML的应用程序,我想在我的自定义网格控件上用画笔绘制网格线.
在WPF中,我会创建一个DrawingBrush来完成这项工作,但似乎在Metro中没有相应的???
有没有人知道这个功能是否存在于另一个名称下,或者您是否以不同方式获得相同的结果?
作为一个额外的注释,我不想直接在我的网格上绘制线条等(在我的面板的子集合中添加线条),它确实需要通过背景属性 - 即刷子来完成.
谢谢
我只是用Google搜索了大约2个小时,但没有找到任何东西.
鉴于以下情况:
public class Person
{
[Required]
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<TextBox Text="{Binding Name, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)
您将如何在MVC3中自动获取UI上的验证反馈?
(哦,如果我能够使用像[必需]那样的集成数据注释,我现在真的不在乎)
任何帮助深表感谢!
我使用C#中的Visual Studio 11 Ultimate为Win 8创建了一个基本的Metro App.
这里的问题是我想显示随某些事件动态变化的文本.一个例子是一个应用程序,其中一个数字显示在屏幕上,并且只要点击鼠标就增加1.
我已经使用XAML绑定到我创建的数据结构,它确实获得了我需要显示的值,但问题是当这些值发生变化时,GUI上显示的数字不会改变.
如何将我的XAML绑定到动态更改的数据,以便GUI上的XAML显示也发生变化?
谢谢您的帮助!
- 编辑 -
我已经实现了INotifyPropertyChanged接口,但现在我从这行代码中收到一个异常:
PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
这是异常信息:
该应用程序调用了一个为不同线程编组的接口.(来自HRESULT的异常:0x8001010E(RPC_E_WRONG_THREAD))
我有这个在代码中XAML显示一个.在将被用作一个选择菜单.ListViewC++/CXListView
<ListView x:Name="itemsListView"
ItemsSource="{Binding Source={StaticResource MenuDataSourceCVS}}"
HorizontalAlignment="Stretch"
Width="230"
Margin="0,45,0,0"
VerticalAlignment="Top"
Grid.Row="1"
SelectionChanged="itemsListView_SelectionChanged" SelectionMode="Single"
HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
FontFamily="Global User Interface">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="40" Width="230">
<TextBlock Text="{Binding Name}"
Margin="10,5" Width="150" Height="30"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
<Border Height="30" Width="30" Margin="5">
<Image Source="{Binding ImageSrc}" Stretch="Fill"/>
</Border>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
如下图所示,选择不会占据所有列,并在选中时显示复选标记.

有没有办法消除这种填充和复选标记?
我有一个页面,我想使用WinRT Xaml Toolkit数据可视化控件放置图表.
我有以下代码:
<Charting:Chart x:Name="PieChart" Width="400" Height="400">
<Charting:Chart.Series>
<Charting:PieSeries IndependentValuePath="X" DependentValuePath="Y"/>
</Charting:Chart.Series>
</Charting:Chart>
Run Code Online (Sandbox Code Playgroud)
VS告诉我,PieSeries错了:"'PieSeries'类型的值不能添加到'Collection`1''类型的集合或字典中.
为什么这是一个错误?
我正在使用XAML和MVVM Light开发WinRT应用程序.这个应用程序旨在使用户在外地时更容易进行数据收集.我有一个应用程序的部分,用户需要输入一些有关几个不同项目的信息.这些项定义为从GenericAsset类继承的类.在GenericAsset具有诸如这样的:
public class GenericAsset
{
public string AssetId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Make { get; set; }
public string Model { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
子类看起来像这样:
public class SubAsset1 : GenericAsset
{
public string RecordNumber { get; set; }
public int SizeDiameter { get; set; }
public string MaterialType { get; set; }
}
public class SubAsset2 : GenericAsset …Run Code Online (Sandbox Code Playgroud) 如果我写一个简单的函数,我可以立即得到一个结果.如果我使用async/await并返回一个Task- 该方法将在完成任务后返回,但是如果我需要编写一个需要立即返回的方法,然后继续更新结果并可能最终完成任务呢?另外,如果我想在WinRT组件库之外公开它以供其他语言的组件使用,该怎么办?我如何在C#中完成它,我将如何在C++/CX中完成?或JS或许?
例1:
我想公开一个返回一个的属性,ImageSource所以我可以立即将它从我的MVVM视图模型绑定到XAML视图.加载方法ImageSource将在一个单独的类中,该类在WinRT组件外部公开(它是一个公共方法).现在我希望该方法是可以等待的,或者至少以某种方式返回我可以等待的任务但也立即返回ImageSource所以我调用它的属性可以立即返回,因为属性不能是异步的.调用者不知道ImageSource将是什么类型,因此它无法实例化它,因为ImageSource它实际上是一个抽象类型,通常表示为BitmapImage或WriteableBitmap在我的情况下,两者都可以从方法返回.显然,该方法本身立即知道它是否将返回任何类型的对象,但是它需要一些时间来读取/创建和/或解码图像.
我在想C#中的签名可能是这样的
public async Task<ImageSource> GetImage(
object key,
out ImageSource bitmap,
CancellationToken cancellationToken)
Run Code Online (Sandbox Code Playgroud)
我只是不等待属性访问器中的方法的结果,但我想我能够立即返回位图参数,而当我在其他地方调用或在我的视图模型的代码中的其他地方事件时我会能够等待或取消任务.
例2:
我希望能够列出磁盘中的文件,并在列出所有文件后获得完成的任务,但会立即返回一个IObservableVector视图模型,表示在我的XAML UI中使用的文件,这些文件更新为文件页面异步加载.
在这里,我可能会做类似的事情:
public async Task<int> GetImages(
object queryParemeters,
out ObservableCollection<CustomFileInfoType> files,
CancellationToken cancellationToken)
Run Code Online (Sandbox Code Playgroud)
问题
现在上面看起来几乎不错,但是我认为我不能在WinRT组件之外暴露一个TPL任务,因为Task它不是WinRT类型,所以我可能给出了一个类似上面的内部方法和一个包含结果的公共方法作为IAsyncOperation通过调用AsyncInfo.Run(),传递任务和取消标记.ObservableCollection也只是.NET,所以我可能需要在它周围创建一个包装器来实现,IObservableVector因为我不认为它在.NET中可用.这些可能存在其他潜在问题,我不确定这种设计是否正确.
那么 - 我将如何在C++/CX中完成所有这些工作?还是JS?
windows-runtime ×10
winrt-xaml ×8
xaml ×6
c# ×4
windows-8 ×4
c++-cx ×2
listview ×2
async-await ×1
binding ×1
gesture ×1
mvvm-light ×1
validation ×1
wpf ×1