Jestem NIESAMOWITĄ i bardzo walczę z tym, co wydaje się być bardzo prostym zadaniem. Jak zmodyfikować właściwość MainWindow
TextBlock
, z innego pliku CS. Dokładne rozwiązanie kodu byłoby niezwykle pomocne.Jak uzyskać dostęp do WPF MainWindow Controls z mojego własnego pliku .cs
Poniżej znajduje się okrojony kod. Czy korzystanie z klasy statycznej powoduje dodatkowe problemy?
w pliku: MainWindow.xaml
<Window x:Class="TestApp1.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">
<Grid>
<TextBlock x:Name="TextBlock1" HorizontalAlignment="Left" Margin="107,71,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/>
</Grid>
</Window>
w pliku: MainWindow.xaml.cs
namespace TestApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
TextBlock1.Text = "Setting Text from MainWindow";
MyProgram.myProgramStart();
}
}
}
w pliku: CodeFile1.cs
namespace TestApp1
{
public static class MyProgram
{
public static void myProgramStart()
{
// ... blah blah blah
// I want to do something like follows, but won't compile
MainWindow.TextBlock1.Text = "Setting Text from My Program";
}
}
}
miła odpowiedź, ale ja po prostu chciałem powtórzyć pogrubioną czcionką: ** „ale nie słuchać plakatów który powiedział, że w rzeczywistej aplikacji należy użyć MVVM” ** – Sharky
Wielką odpowiedź, ale w Jeśli ktoś naprawdę za tym tęsknił ... ** "ale słuchaj plakatów, które powiedziały, że w prawdziwej aplikacji używałbyś MVVM" **. –
Nie otrzymuję generalizacji porady bonusowej w ogóle. Istnieje kilka powodów, dla których w ten sposób potrzebujemy kodu źródłowego. na przykład niestandardowe kodowanie style.xaml za pomocą kodu proceduralnego dla użycia funkcji obsługi w stylach dla metod, dla których xaml nie jest wystarczająco algorytmem. –