我有一个WPF 4应用程序,其中包含一个单向绑定到一个整数值(在这种情况下,以摄氏度为单位)的TextBlock。 XAML看起来像这样: <TextBlock x:Name="textBlockTemperature"><Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock> 这适用于显示实际温度值,但我想格式化这个值,所以它包括°C而不是只是数字(30°C而不是30)。 我一直在阅读关于StringFormat,我已经看到了几个这样的通用示例: // format the bound value as a currency <TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" /> 和 // preface the bound value with a string and format it as a currency <TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/> 不幸的是,我所看到的例子都没有附加一个string作为我试图做的绑定值。 我相信这是简单的,但我没有find它的运气。 任何人都可以向我解释如何做到这一点?
我有一个自定义controlIemplate水平列表框。 所选项目在聚焦时获得虚线框。 任何人都知道如何摆脱它?
我希望用户能够将单元格置于编辑模式,并单击单击来突出显示单元格所在的行。 默认情况下,这是双击。 我如何重写或实现这个? 我search了谷歌,codeplex答案不适合我。 我对WPF和编码一般都很陌生,所以一个简单的答案是更好的。
我有以下ListView : <ListView Name="TrackListView"> <ListView.View> <GridView> <GridViewColumn Header="Title" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Name}"/> <GridViewColumn Header="Artist" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Album.Artist.Name}" /> </GridView> </ListView.View> </ListView> 我怎样才能把一个事件附加到双击该项目的每个绑定项目?
我想格式化绑定到TimeSpan属性的文本块。 如果该属性是DateTimetypes,但是如果它是TimeSpan则失败。 我可以用转换器来完成。 但我试图找出是否有其他的select。 示例代码: public TimeSpan MyTime { get; set; } public Window2() { InitializeComponent(); MyTime = DateTime.Now.TimeOfDay; DataContext = this; } XAML <TextBlock Text="{Binding MyTime,StringFormat=HH:mm}"/> 我期待textblock只显示小时和小点。 但它显示为: 19:10:46.8048860
我有一个关于WPF中的MVVM的问题,正在驱动我batty。 为什么要这样做:? MainWindow.xaml: <Window x:Class="MVVMProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid> <ContentControl Content="{Binding}"/> </Grid> </Window> 把你的ExampleView.xaml设置为: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vms="clr-namespace:MVVMProject.ViewModels"> <DataTemplate DataType="{x:Type vms:ExampleVM}" > <Grid> <ActualContent/> </Grid> </DataTemplate> </ResourceDictionary> 并像这样创build窗口: public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); MainWindow app = new MainWindow(); ExampleVM context = new ExampleVM(); app.DataContext = context; app.Show(); […]
在我的WPF应用程序中,我有一个包含多个控件的Stackpanel。 我如何添加一个滚动条到这个堆栈面板。
我怎么能够: 右alignmentID列中的文本 根据具有最长可见数据的单元格的文本长度,使每列自动resize? 这里是代码: <ListView Name="lstCustomers" ItemsSource="{Binding Path=Collection}"> <ListView.View> <GridView> <GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" Width="40"/> <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding FirstName}" Width="100" /> <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}"/> </GridView> </ListView.View> </ListView> 部分答案: 感谢Kjetil,GridViewColumn.CellTemplate工作良好,自动宽度的工作,当然,但是当ObservativeCollection“集合”更新列长度较长的数据,列大小不会自我更新,这只是一个解决scheme数据的初始显示: <ListView Name="lstCustomers" ItemsSource="{Binding Path=Collection}"> <ListView.View> <GridView> <GridViewColumn Header="ID" Width="Auto"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Id}" TextAlignment="Right" Width="40"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding […]
在WPF中, mc:Ignorable="d"是什么意思? 而这一行: d:DesignHeight="500" d:DesignWidth="300"
我正在写几个WPF用户控件,需要共享和个人资源。 我已经想出了从单独的资源文件加载资源的语法: <UserControl.Resources> <ResourceDictionary Source="ViewResources.xaml" /> </UserControl.Resources> 但是,当我这样做时,我也不能在本地添加资源,如: <UserControl.Resources> <ResourceDictionary Source="ViewResources.xaml" /> <!– Doesn't work: –> <ControlTemplate x:Key="validationTemplate"> … </ControlTemplate> <style x:key="textBoxWithError" TargetType="{x:Type TextBox}"> … </style> … </UserControl.Resources> 我已经看了一下ResourceDictionary.MergedDictionaries,但是这只允许我合并多个外部字典,而不是在本地定义更多的资源。 我一定错过了一些微不足道的东西? 应该提到的是:我将用户控件托pipe在WinForms项目中,因此将共享资源放在App.xaml中并不是一个真正的select。