首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wpf从xaml更改属性操作

Wpf从xaml更改属性操作
EN

Stack Overflow用户
提问于 2015-08-05 08:45:15
回答 1查看 1.4K关注 0票数 0

是否有可能从xaml更改状态?例如,当第一个按钮启动时,使用"State“值字符串或bool。需要写的东西。目标名称应该是什么?

代码语言:javascript
复制
    <Grid>
    <Button Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Click">
                <ei:ChangePropertyAction TargetName="State"  Value="False"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>
    <Button Content="Button" HorizontalAlignment="Left" Margin="94,10,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>

代码:

代码语言:javascript
复制
namespace WpfApplication114
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new Data();
    }
}
public class Data
{
    private string state;
    public string State 
    {
        get { return this.state; }
        set { this.state = value; }
    }
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-05 09:12:04

嗨,如果我没有误解你的问题,你可以这样做

TriggerAction类

代码语言:javascript
复制
    public class TriggerActionClick : TriggerAction<Button>
{
    public string Value { get; set; }
    public string TargetName { get; set; }

    protected override void Invoke(object parameter)
    {
        if (AssociatedObject.DataContext != null && !string.IsNullOrEmpty(TargetName))
        {
            var type=AssociatedObject.DataContext.GetType();
            var prop = type.GetProperty(TargetName);
            if (prop != null)
                prop.SetValue(AssociatedObject.DataContext,Value);
        }

    }
}

在这里,当您单击Button时,xaml中的值将被设置为DataContext对象的DataContext中指定的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31827587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档