小编And*_*rke的帖子

WPF ItemsControl - ViewModel上的命令未从ItemsControl中触发

我正在使用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)

data-binding wpf itemscontrol mvvm

6
推荐指数
1
解决办法
1878
查看次数

wpf如何判断数据绑定何时完成?

我有一个自定义控件,它有一个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)

data-binding wpf dependency-properties custom-controls

5
推荐指数
1
解决办法
1333
查看次数

使用Access-Control-Allow-Origin和MVC

我正在尝试使用简单的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.

有人可以帮忙吗?

asp.net-mvc jquery json cross-domain

5
推荐指数
1
解决办法
3242
查看次数

用于vNext中的静态HTML的CORS

我有一个在Visual Studio 2015 RC中运行的MVC6站点

我有一些我希望提供给其他网站的静态HTML文件.我想添加CORS支持(无需添加控制器并以这种方式添加CORS).

有人知道怎么做吗?

cors asp.net-core-mvc asp.net-core

5
推荐指数
1
解决办法
1114
查看次数

WPF MVVM - 如果我将DataContext设置为后面的代码,自定义控件将不会绑定到Visibility

我想对我的应用程序进行快速用户控制,但是为了保持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删除我的小叮当 - 可见性有效!

有人能把我弄好吗?谢谢

wpf user-controls mvvm

4
推荐指数
1
解决办法
4663
查看次数

如何通过Jquery调用MVC FileContentResult并让它提示用户保存它的返回值?

我正在从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

4
推荐指数
3
解决办法
2万
查看次数

WPF VisualBrush 拉伸而不是平铺

我有一个 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)

wpf xaml visualbrush

4
推荐指数
1
解决办法
2275
查看次数

MVC 3 Razor - Html列表中的下拉列表

我有一个对象列表,它们有一个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)

asp.net razor asp.net-mvc-3

3
推荐指数
1
解决办法
9510
查看次数

WPF - 从UserControl引发命令时,CanExecute不会触发

我有一个按钮条用户控件,我希望在我的大多数表单上都有.

我添加了如下命令......

    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作为属性传递,但不确定......

有人可以帮忙吗?

干杯,

安迪

wpf user-controls command mvvm wpf-controls

2
推荐指数
1
解决办法
4325
查看次数

.NET反射 - 从反射集合中获取第一个项目,而不转换为特定集合

我有一个带有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() - 但是由于它是一个扩展方法,所以不能轻易做到这一点.

有没有人有任何想法?

c# reflection collections

2
推荐指数
1
解决办法
1689
查看次数