我一直在努力解决这个问题.尽管我内心的人说"不要这样做",现在是时候问路了.
我使用MVVM设计模式在WPF C#中编码.除非没有选择,否则我们会严格遵守模式并在代码中不加任何内容,否则这样做是完全不合理的.话虽如此,我正在使用Telerik RadTreeView.以下是我的XAML中的一小段内容:
<telerik:RadTreeView IsExpandOnSingleClickEnabled="True" IsLineEnabled="True" Margin="5"
ItemsSource="{Binding ItemsView}"
SelectedItem="{Binding SelectedWidget, Mode=TwoWay}"
ItemTemplate="{StaticResource NodeTemplate}" />
Run Code Online (Sandbox Code Playgroud)
目前树正常工作,因此如果您突出显示树项并单击视图上的"确定"按钮,则一切都很好.但是,我还需要允许用户双击其中一个树项.这意味着我已经在我的视图模型中有一个命令和方法,受保护的覆盖void OkAction(),具有所需的逻辑.Telerik提供了一个名为ItemDoubleClick的属性,该属性应该为树项双击提供功能.但我找不到任何允许我在视图模型中执行此操作的内容.换句话说,我该如何进行绑定?我们的项目中还有一个行为设置,用于双击,我被告知可以使用,但我没有行为经验.WPF我还是有点湿.
如果有帮助,这里是Telerik文档的链接:http://www.telerik.com/help/wpf/radtreeview-events-overview.html
我将不胜感激,任何人都可以提供帮助或指导.
试试看斯坦:
<Grid.Resources>
<DataTemplate x:Key="WidgetTemplate">
<StackPanel Orientation="Horizontal">
<Image Source="/Resources/gear1.png" Margin="1" Stretch="None" />
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="6,0,0,0" />
</StackPanel>
</DataTemplate>
<HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource = "{Binding Children}" ItemTemplate="{StaticResource WidgetTemplate}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</Grid.Resources>
Run Code Online (Sandbox Code Playgroud) 我们的应用程序已转换为使用DrawingImage范例使用矢量图像.我想在DrawingImage变量中制作颜色/画笔,并且没有运气.
为什么:我这样做的理由是我们在应用程序中使用主题,并且我想在主题更改时更改所有图像.从技术上讲,我只想改变颜色而不是图像.
我做了什么:我已经声明颜色(我说颜色因为图像中使用了不同类型的笔/画笔)作为DynamicResource连接到定义的画笔然后尝试通过绑定更新该画笔我不喜欢没有改变.我还尝试通过绑定它来重绘图像,然后在ApplicationThemeChanged事件触发时重绘它.这仍然不起作用让我感到惊讶.
侧面注意:我主要想在按钮中执行此操作,并扩展了Button类以增加功能,将其称为VectorButton.我的观点是,我有一个VectorButton.cs文件可用于进行更改.
如果您需要任何具体的代码示例,请询问,我会发布.我认为这很不言自明.
提前感谢您的帮助!
DrawingImage示例(我在主题更改时交换ResourceDictionaries.每个资源字典都有PrimaryColor的副本,但具有不同的颜色值.)
<DrawingImage x:Key="myVectorIconDrawingImage">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.ClipGeometry>
<RectangleGeometry Rect="0,0,744.09448,1052.3622" />
</DrawingGroup.ClipGeometry>
<DrawingGroup>
<GeometryDrawing Brush="{DynamicResource PrimaryColor}">
<GeometryDrawing.Pen>
<Pen Brush="{DynamicResource PrimaryColor}" Thickness="1" StartLineCap="Flat" EndLineCap="Flat" LineJoin="Miter" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry FillRule="EvenOdd" Figures="M239.0625,299L239.0625,349 289.0625,349 289.0625,299 239.0625,299z M309.5625,299.5L309.5625,348.53125 507.59375,348.53125 507.59375,299.5 309.5625,299.5z M239.0625,384L239.0625,434 289.0625,434 289.0625,384 239.0625,384z M309.5625,384.5L309.5625,433.53125 507.59375,433.53125 507.59375,384.5 309.5625,384.5z M239.0625,469L239.0625,519 289.0625,519 289.0625,469 239.0625,469z M309.5625,469.5L309.5625,518.53125 507.59375,518.53125 507.59375,469.5 309.5625,469.5z" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
Run Code Online (Sandbox Code Playgroud) 好吧,我已经在这个问题上挣扎了相当长一段时间,并且阅读了一篇又一篇文章,试图了解这个问题。我正在尝试实施忙碌指示器,但只取得了部分成功。我有一个用 BusyIndicator 包装的 Shell 视图,如下所示:
<Window x:Class="Foundation.Shell"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:Library.Controls.Views;assembly=Library"
xmlns:l="clr-namespace:Library.StaticClasses"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
Name="ShellView"
Style="{StaticResource BusyWindowStyle}"
SourceInitialized="Window_SourceInitialized"
DataContext="{StaticResource ShellVM}">
<xctk:BusyIndicator x:Name="ShellBusyIndicator" IsBusy="{Binding IsBusy}" DisplayAfter="0">
<Grid>
<!--Content Here -->
</Grid>
</xctk:BusyIndicator>
Run Code Online (Sandbox Code Playgroud)
遵循 MVVM 模式,我有一个 ShellViewModel,如下所示:
public class ShellViewModel : ViewModelBase
{
#region constructor(s)
public ShellViewModel()
{
StateManager.IsBusyChange += new StateManager.IsBusyHandler(IsBusyEventAction);
}
#endregion constructor(s)
#region properties
private bool _IsBusy;
public bool IsBusy
{
get
{
return _IsBusy;
}
set
{
if (_IsBusy != value)
{
_IsBusy = value;
OnPropertyChanged("IsBusy");
}
}
}
private …Run Code Online (Sandbox Code Playgroud) 我试图扩展EF 6代码的第一个模型,我收到一个错误.我搜索过,找不到有关该问题的更多信息.我在同一名称空间中创建了一个与我的模型同名的部分类.这是我的模型和扩展:
型号 -
namespace DataAccess.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
[Table("Vehicle")]
public partial class Vehicle
{
public Vehicle()
{
WorkOrders = new HashSet<WorkOrder>();
}
public int VehicleID { get; set; }
public int CustomerID { get; set; }
[StringLength(17)]
public string VIN { get; set; }
public int Mileage { get; set; }
[StringLength(4)]
public string Year { get; set; }
[StringLength(50)]
public string Make { get; set; }
[StringLength(50)]
public string Model …Run Code Online (Sandbox Code Playgroud)