我有许多绑定到数据集的Silverlight图表.
它们都正常工作,但轴显示多年的值显示的是,而不是整年,介于两者之间的点,例如:2007,2007.2,2007.4等.
我怎样才能让它只显示整年?
下面是一个屏幕截图,以进一步解释我的意思.

这是我用来绑定图表数据的代码:
foreach (var myVariable in UserSelections.TheDataSet.ER_Variables)
{
var newSeries = new LineSeries
{
ItemsSource =
UserSelections.GetDataRowsByVariableAndLocation(
UserSelections.GetIdForLocation(UserSelections.Locations[0]),
myVariable.Variable_ID),
IndependentValueBinding = new Binding("Year"),
DependentValueBinding = new Binding("Value"),
Title = myVariable.Name,
IsSelectionEnabled = true
};
MainChart.Series.Add(newSeries);
}
Run Code Online (Sandbox Code Playgroud) 实现ListPicker时,如果有足够的项目使其全屏显示,它将崩溃.如果只有2-3个项目并且它只是扩展,它不会崩溃.我得到一个ArgumentException,'参数不正确'
<toolkit:ListPicker Grid.Row="1"
ItemTemplate="{Binding lpkItemTemplate}"
FullModeItemTemplate="{Binding lpkFullItemTemplate}">
<toolkit:ListPicker.Items>
<toolkit:ListPickerItem>1</toolkit:ListPickerItem>
<toolkit:ListPickerItem>5</toolkit:ListPickerItem>
<toolkit:ListPickerItem>10</toolkit:ListPickerItem>
<toolkit:ListPickerItem>15</toolkit:ListPickerItem>
<toolkit:ListPickerItem>20</toolkit:ListPickerItem>
<toolkit:ListPickerItem>30</toolkit:ListPickerItem>
</toolkit:ListPicker.Items>
</toolkit:ListPicker>
Run Code Online (Sandbox Code Playgroud)
模板是
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Name="lpkItemTemplate">
<TextBlock Text="{Binding Content}" />
</DataTemplate>
<DataTemplate x:Name="lpkFullItemTemplate">
<TextBlock Text="{Binding Content}" />
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
Run Code Online (Sandbox Code Playgroud)
我看过一些例子,我没有看到任何与我在这里有什么不同的东西,而且它有效.唯一的区别是示例重做数据绑定.我已经尝试逐步调试控件的代码,但我没有看到任何弹出的内容.在ListPicker中完成'OnManipulationCompleted'事件处理程序之后,它会在基类'ItemsControl'中抛出异常.
我有什么想法吗?
我从http://silverlight.codeplex.com/安装了2011年8月推出的windows phone silverlight工具包.
安装(并重新启动计算机)后,我尝试C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Aug11\Bin\Microsoft.Phone.Controls.Toolkit.dll在我的VS项目中引用silverlight工具包(位于).
当我尝试这样做时,我得到一个错误说" A reference to a higher version or incompatible assembly cannot be added to the project".为什么这样,我该如何解决?我的VS是Windows Phone的Visual Studio Express版.
需要注意的是,在参考列表中,我还包括了Windows.Phone和Windows.Phone.Controls(可能参考"更高版本")
我想在Silverlight中选择树视图项时阻止自动水平滚动.我正在尝试在基类中完成它.
到目前为止,我还没有能够管理它.我已经尝试了下面的代码,但是它会执行,然后当我选择它时,事情就会滚动.
using System.Windows;
using System.Windows.Controls;
namespace MyControls
{
public class CustomTreeView : TreeView
{
private ScrollViewer _scrollViewer;
protected override void OnSelectedItemChanged(RoutedPropertyChangedEventArgs<object> e)
{
base.OnSelectedItemChanged(e);
_scrollViewer.ScrollToHorizontalOffset(0);
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
_scrollViewer = GetTemplateChild("ScrollViewer") as ScrollViewer;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我实际上并不想完全禁用滚动 - 如果项目飞离树视图的边缘,我希望用户能够滚动到它.我想要做的是当我选择一个可能长于屏幕宽度的子节点时,将树保持在原来的位置.
我在WrapPanel上尝试了RequestBringIntoView,但这似乎只是WPF.我也试过在UpdateLayout和SelectedItemChanged上做这个.一切都无济于事.我似乎无法找到一个通用的解决方案,我可以让另一个类继承并使用.
有人有主意吗?
谢谢!
-Ari
编辑:赏金说明我需要能够在XAML中完成它.那是我的错字.我也将采用代码解决方案.谢谢!
我在WCF中有一个类:
[DataContract]
public class Usuario
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Nombre { get; set; }
[DataMember]
public string Contraseña { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在WP7 Proyect中从WCF读取ObservableCollection并加载ListPicker:
lpUsuarios.ItemSource = listUsuarios;
Run Code Online (Sandbox Code Playgroud)
这项工作还可以.
现在,在WP7中使用"Usuario _usuario = new Usuario()"作为局部变量.
问题是,如果我使用IsolatedStorage保存变量_usuario然后加载并应用:lpUsuarios.SelectedItem = _usuario,则会导致错误:SelectedItem必须始终设置为有效值.
例:
Usuarios _usuario = new Usuario();
private void ButtonSave_Click(object sender, RoutedEventArgs e)
{
var settings = IsolatedStorageSettings.ApplicationSettings;
_usuario = lpUsuarios.SelectedItem as Usuario;
settings.Add("test", _usuario);
settings.Save();
}
Run Code Online (Sandbox Code Playgroud)
现在,关闭应用程序,然后打开:
private void ButtonLoad_Click(object sender, RoutedEventArgs e)
{
settings.TryGetValue<Usuario>("test", …Run Code Online (Sandbox Code Playgroud) 我正在使用Windows Phone Control工具包中的ContextMenu.想知道如何知道列表中的哪个列表项被按下?似乎我可以知道选择了哪个上下文菜单,但我无法知道操作哪个列表项.请帮忙.谢谢!
<DataTemplate x:Key="ListItemTemplate">
<StackPanel Grid.Column="1" VerticalAlignment="Top">
<TextBlock Tag="{Binding Index}" Text="{Binding SName}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" />
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="Add to playlist" Click="Move_Click"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>
private void Move_Click(object sender, RoutedEventArgs e)
{
String name = (string)((MenuItem)sender).Header;
// how to know which index of the item is targeted on
}
Run Code Online (Sandbox Code Playgroud) silverlight xaml contextmenu silverlight-toolkit windows-phone-8
我对ListPickerWP7中的元素有一个奇怪的问题.
问题
通过a 设置ListPicker's' 不会更改加载后显示的默认项目.SelectedIndexBinding
例
作为测试,我很快就修改了微软SettingsSample以包含一个ListPicker.您可以在http://www.mediafire.com/?w0n0ymkh4dwe9b3下载
这是我们崩溃了ListPicker:
-----------------
| Times New Roman |
-----------------
Run Code Online (Sandbox Code Playgroud)
这就是ListPicker它扩展的时候:
-----------------
| Times New Roman |
| Arial |
| Comic Sans MS |
-----------------
Run Code Online (Sandbox Code Playgroud)
如果我们选择'Arial',导航,然后再回来,ListPicker仍然显示:
-----------------
| Times New Roman |
-----------------
Run Code Online (Sandbox Code Playgroud)
它应该显示(因为设置保存正确):
-----------------
| Arial |
-----------------
Run Code Online (Sandbox Code Playgroud)
进一步的混乱
在上面的例子中,如果我们单击ListPicker,实际上选择了'Arial'(因为ListBoxItem突出显示了该文本).由于某种原因,它只是在加载控件时没有显示为默认值.
如果我们忘记了这个Binding方法,而是SelectedIndex在XAML中手动设置为'1',那么我们会在加载控件时得到预期的结果:
-----------------
| Arial |
-----------------
Run Code Online (Sandbox Code Playgroud)
想法? …
我设法通过MVVM运行LongListSelector.换句话说,ItemSource是通过我的viewmodel上的属性设置的.
但是出于一些奇怪的原因,我似乎无法"绑定"LongListSelector的SelectedItem ......我没有进入ViewModel属性的Set和Get.这是怎么做到的?那么ViewModel上SelectedItem的'type'应该是什么?我认为集团内部的班级类型?
我目前的xaml:
<silverlighttoolkit:LongListSelector x:Name="AlbumsList"
Background="Transparent"
ItemTemplate="{StaticResource ItemTemplate}"
GroupHeaderTemplate="{StaticResource GroupHeaderTemplate}"
GroupItemTemplate="{StaticResource GroupItemTemplate}"
ItemsSource="{Binding GroupedAlbums}"
SelectedItem="{Binding SelectedAlbum, Mode=TwoWay}">
<silverlighttoolkit:LongListSelector.GroupItemsPanel>
<ItemsPanelTemplate>
<silverlighttoolkit:WrapPanel />
</ItemsPanelTemplate>
</silverlighttoolkit:LongListSelector.GroupItemsPanel>
</silverlighttoolkit:LongListSelector>
Run Code Online (Sandbox Code Playgroud) silverlight-toolkit windows-phone-7 mvvm-light longlistselector
我对silverlight工具包中的toggleSwitch有问题.我需要从设置类设置isChecked,但我不知道热得到这个bool?所需的类型.
有人可以给我一个例子如何从c#代码设置isChecked属性?