我正在使用MV-VM并在我的ViewModel上有一个名为'EntitySelectedCommand'的命令.
我试图获取ItemsControl中的所有项目以触发此命令,但它无法正常工作.
我认为这是因为每个项目的"datacontext"是项目绑定的单个对象,而不是ViewModel?
有人能指出我正确的方向吗?
干杯,
安迪
<ItemsControl ItemsSource="{Binding Path=LinkedSuppliers}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<Controls:EntityLabel Grid.Column="0" Grid.Row="0" Content="{Binding Name}" CurrentEntity="{Binding }" EntitySelected="{Binding EntitySelectedCommand}" ></Controls:EntityLabel>
<StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud) 我有一个自定义控件,它有一个DependencyProperty MyAnimal - 我将ViewModel上的Animal属性绑定到MyAnimal DependencyProperty.
我在控件上粘贴了一个TextBox,所以我可以触发一个事件 - 每当我触发事件时MyAnimal属性已被设置 - 但是如果我在MyAnimal属性的Setter上放置一个断点,它永远不会被触发!
我想我错过了一些关于WPF依赖属性/绑定的基本知识?!
所以我的问题是,如果我不能使用Setter,我怎么能知道它何时被设置?如果我把如果我在InitializeComponent()之后放置一个断点,那么我看看是否有一个事件可以挂钩--DatabindingFinished或类似的?但看不出它会是什么......
有人可以帮忙吗?
谢谢,
安迪
public partial class ControlStrip
{
public ControlStrip()
{
InitializeComponent();
}
public Animal MyAnimal
{
get
{
return (Animal)GetValue(MyAnimalProperty);
}
set
{
SetValue(MyAnimalProperty, value);
}
}
public static readonly DependencyProperty MyAnimalProperty =
DependencyProperty.RegisterAttached("MyAnimal", typeof (Animal), typeof (ControlStrip));
private void TextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
var myAnimal = MyAnimal;
MessageBox.Show(myAnimal.Name);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用简单的HTML与JQuery页面和另一个域上的MVC站点进行简单的跨域调用.
我的基础是我做的...
在ASP.Net MVC中设置Access-Control-Allow-Origin - 最简单的方法
这是我简单网站中的电话......
<script type="text/javascript">
$(function () {
$.get("http://example.com:20874/Home/YourMethod", function (data) {
alert(data);
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
并且我的控制器......属性代码只是从其他问题粘贴...
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[AllowCrossSiteJson]
public ActionResult YourMethod()
{
return Json(@"{""title"": ""example glossary""}");
}
}
Run Code Online (Sandbox Code Playgroud)
但调用网站错误...
XMLHttpRequest无法加载http://example.com:20874/Home/YourMethod.Access-Control-Allow-Origin不允许使用Origin http://example.com:90.
有人可以帮忙吗?
我有一个在Visual Studio 2015 RC中运行的MVC6站点
我有一些我希望提供给其他网站的静态HTML文件.我想添加CORS支持(无需添加控制器并以这种方式添加CORS).
有人知道怎么做吗?
我想对我的应用程序进行快速用户控制,但是为了保持MVVM样式,我想我会将XAML的DataContext设置为UserControl中的代码.
即
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Run Code Online (Sandbox Code Playgroud)
这允许我将XAML绑定到我后面的代码中的属性.
一切顺利,直到我将控件实例的可见性绑定到ViewModel上的Visibility属性.
<Controls:RoundProgress Visibility="{Binding ProgressVisibility}" Width="100" Height="100"></Controls:RoundProgress>
Run Code Online (Sandbox Code Playgroud)
可见性不再有效 - 如果我使用用户控件中的DataContext删除我的小叮当 - 可见性有效!
有人能把我弄好吗?谢谢
我正在从MVC 3网站生成CSV并使用FileContentResult将其传递给用户.这很好用但是生成csv需要30秒,因此在向用户提供保存提示之前30秒.
public virtual FileContentResult GetSpreadsheet(string id)
{
var service = new SpreadsheetService();
var result = service.GetCSV();
return File(new System.Text.UTF8Encoding().GetBytes(result.Message), "text/csv", "Report123.csv");
}
Run Code Online (Sandbox Code Playgroud)
所以我以为我只是通过JQuery调用它 - 但这(不出所料!)只是将CSV转储到页面.
$.post("/Home/GetSpreadsheet/" + id, null, function (data) {
$('#resultDiv').html(data);
});
Run Code Online (Sandbox Code Playgroud)
有谁知道我现在如何生成保存提示我已经有数据了?谢谢
model-view-controller jquery filecontentresult asp.net-mvc-3
我有一个 VisualBrush,我已将其 TileMode 属性设置为 Tile。
然而,它不会平铺 - 它会拉伸。有人可以帮忙吗?
谢谢
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="test"
x:Name="UserControl"
d:DesignWidth="500" d:DesignHeight="500">
<UserControl.Resources>
<VisualBrush x:Key="MyBrush" TileMode="Tile">
<VisualBrush.Visual>
<Grid Width="20">
<Ellipse Fill="#FF00EBFF" Stroke="Black" StrokeThickness="2" Width="20" Height="20" RenderTransformOrigin="0.5,0.5" >
</Ellipse>
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" >
<Grid Background="{StaticResource MyBrush}" />
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud) 我有一个对象列表,它们有一个Name和一个值列表,另一个属性代表SelectedValue.
我想显示名称,然后下拉 - 但不知道该怎么做!
有人可以帮忙吗?
使用以下示例p.Name工作,它的p.Values和p.SelectedValues位不起作用!
<div id="gridProps">
<ul id="props">
@foreach (var p in Model.AvailableProperties)
{
<li>@p.Name : @Html.DropDownListFor(p.SelectedValue, p.Values)</li>
}
</ul>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个按钮条用户控件,我希望在我的大多数表单上都有.
我添加了如下命令......
public ICommand Create
{
get
{
return buttonCreate.Command;
}
set
{
buttonCreate.Command = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我将它们设置为依赖属性,以便我可以绑定它们...
public static readonly DependencyProperty CreateCommandProperty =
DependencyProperty.Register(
"Create",
typeof(ICommand),
typeof(StandardButtonStrip),
new PropertyMetadata((ICommand)null));
Run Code Online (Sandbox Code Playgroud)
然后我将我的usercontrol绑定到命令...
<commoncontrols:StandardButtonStrip HorizontalAlignment="Stretch" Create="{Binding CreateCommand}" />
Run Code Online (Sandbox Code Playgroud)
我按如下方式设置命令......
_viewModel.CreateCommand = new DelegateCommand<object>(OnCreateCommand, CanCreate);
Run Code Online (Sandbox Code Playgroud)
但是尽管事实上我总是在我的CanCreate方法上返回true,但按钮被禁用...如果我在返回时设置了断点,它永远不会触发!
public bool CanCreate(object parm)
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
我试过这个看看它是否会刷新绑定,但没有快乐!
_viewModel.CreateCommand.RaiseCanExecuteChanged();
Run Code Online (Sandbox Code Playgroud)
我认为问题在于用户控制以及我如何将Command作为属性传递,但不确定......
有人可以帮忙吗?
干杯,
安迪
我有一个带有CustomerContacts集合的Customer对象
IEnumerable<CustomerContact> Contacts { get; set; }
Run Code Online (Sandbox Code Playgroud)
在其他一些代码中,我正在使用Reflection并拥有Contacts属性的PropertyInfo
var contacts = propertyInfo.GetValue(customerObject, null);
Run Code Online (Sandbox Code Playgroud)
我知道联系人中至少有一个对象,但我该如何解决呢?我不想把它投射到,IEnumerable<CustomerContact>因为我想保持我的反射方法动态.我想过通过反射调用FirstOrDefault() - 但是由于它是一个扩展方法,所以不能轻易做到这一点.
有没有人有任何想法?
wpf ×5
mvvm ×3
data-binding ×2
jquery ×2
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
c# ×1
collections ×1
command ×1
cors ×1
cross-domain ×1
itemscontrol ×1
json ×1
razor ×1
reflection ×1
visualbrush ×1
wpf-controls ×1
xaml ×1