首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

数据触发器为啥不好用啊解决方案

2012-06-03 
数据触发器为啥不好用啊?C# codeWindow x:ClassWpfApplication4.MainWindowxmlnshttp://schemas.mic

数据触发器为啥不好用啊?

C# code
<Window x:Class="WpfApplication4.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="MainWindow" Height="350" Width="525">    <Window.Resources>        <Style TargetType="Button">            <Style.Triggers>                <DataTrigger Binding="{Binding Path=St}" Value="2">                    <Setter Property="Template" Value="{StaticResource Eating}"/>                </DataTrigger>            </Style.Triggers>        </Style>        <ControlTemplate x:Key="Empty" TargetType="{x:Type Button}">            <Grid >                <Image x:Name="myimage" Source="/WpfApplication4;component/Images/2.jpg" Height="200" Width="200" />            </Grid>        </ControlTemplate>        <ControlTemplate x:Key="Eating" TargetType="{x:Type Button}">            <Grid >                <Image x:Name="myimage" Source="/WpfApplication4;component/Images/1.jpg" Height="200" Width="200" />            </Grid>        </ControlTemplate>    </Window.Resources>    <Grid>        <Button   Template="{StaticResource Empty}" Height="200" Margin="146,38,157,73" Name="button1" Width="200"  />    </Grid>    </Window>


C# code
    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            DataContext = new D("2");        }        class D        {            string _St;            public string St            {                get { return _St; }                set { _St = value; }            }            string _k;            public string k            {                get { return _k; }                set { _k = value; }            }            public D(string name, string age)            {                _St = St;                _k = k;            }        }    }


k先不用,但是St=2时Template没有从Empty变为Eating。

谁能帮这改一下~

[解决办法]
<Setter Property="Template" Value="{StaticResource Eating}"/>
这个改为
<DataTrigger Binding="{Binding Path=St}" Value="2">
<Setter TargetName="rectangle" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="/WpfApplication4;component/Images/1.jpg" ></ImageBrush>
</Setter.Value>
</Setter>
</DataTrigger>

热点排行