这是我的第一篇文章,所以它看起来并不那么好,但我会尽我所能……
我现在已经在网上搜索了几个小时,这可能听起来很傻但我找不到答案.
我有Window类,在.cs文件中我有一些属性,例如
public ImageSource Obal { get; set; }
然后在设计师中添加了一些图像,按钮等.还设置了窗口的名称:Name =“Somename”
我想知道如何访问该属性,所以我可以,例如,设置一些图像的源属性,如下所示:
Image Name =“Blah”Source =“Obal”
现在我知道我可以通过绑定设置Source值:
Source =“{Binding ElementName = karta,Path = Obal}”
但我每次都必须这样吗?所有这些属性都是来自Window类…而且我也问,因为我想在Image.Style的Storyboard中更改image.Source …而且我不能在那里使用绑定…
我希望我很清楚,我提前感谢你们.
最佳答案 要访问XAML文件中属性后面的代码,您需要执行3个步骤:
>在xaml文件中引用命名空间,如:
xmlns:local="clr-namespace:AccessACodeBehindPropertyinXaml"
>提供您在Windows.Resources标记中引用的命名空间的密钥.此密钥将允许访问XAML文件中引用的命名空间的任何类,属性,例如
<Window.Resources>
<local:ImageClass x:Key="imageClass"/>
</Window.Resources>
>现在你只需要使用Source& amp;和XAML绑定控件的属性. Binding类的路径属性如下:
<Label Content="{Binding Source={StaticResource imageClass}, Path=ImageName}" Name="label1" />
我编写了一个示例应用程序,它将类属性绑定到标签控件.看一看
MainWindow.xaml.cs文件:
namespace AccessACodeBehindPropertyinXaml
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public class ImageClass
{
string m_ImageName;
public ImageClass()
{
m_ImageName = "My Image Name";
}
public string ImageName
{
get
{
return m_ImageName;
}
set
{
m_ImageName = value;
}
}
}
}
MainWindow.xaml
<Window x:Class="AccessACodeBehindPropertyinXaml.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:AccessACodeBehindPropertyinXaml"
Title="MainWindow" Height="350" Width="525" Name="ImageWindow">
<Window.Resources>
<local:ImageClass x:Key="imageClass"/>
</Window.Resources>
<Grid>
<Label Content="{Binding Source={StaticResource imageClass}, Path=ImageName}" Height="28" HorizontalAlignment="Left" Margin="159,126,0,0" Name="label1" VerticalAlignment="Top" Width="109" />
</Grid>
</Window>
如果您需要进一步澄清,请告诉我.