Każde okno dialogowe w programie Data Standard jest oparte na pliku z rozszerzeniem .XAML (Extensible Application Markup Language). Można dostosować okno dialogowe programu Data Standard, modyfikując plik XAML.
Pliki XAML określają układ okna dialogowego programu Data Standard, w tym używane kontrolki (etykieta, pole tekstowe, pole kombi itp.) oraz właściwościami programu CAD lub Vault, z którymi kontrolki są powiązane.
Pliki XAML to pliki XML i można ją edytować za pomocą dowolnego edytora tekstów/XML. Dobrym bezpłatnym edytorem XML jest Microsoft XML Notepad. Można też użyć dowolnego innego edytora, który obsługuje format XML. Firma Autodesk zaleca program Visual Studio (Express lub lepszy) zapewniający najlepsze środowisko edycji. Ponieważ w składni XAML rozróżniana jest wielkość liter, najlepiej jest użyć edytora, który obsługuje zmianę wielkości liter i wykrywanie literówek.
Jeśli potrzeba w oknie dialogowym programu Data Standard wyświetlić więcej lub mniej informacji albo inne informacje, należy zmodyfikować plik XAML. Pliki PS1 znajdujące się w folderze Configuration sterują zachowaniem okna dialogowego.
Ten temat zawiera krótki opis najczęściej używanych kontrolek. Więcej informacji na temat tych, jak również innych kontrolek, można znaleźć na stronach pomocy firmy Microsoft.
Każdy plik XAML zawiera różne sekcje, najczęściej używane to: sekcje zasobów, stylu i kontrolek.
W sekcji zasobów znajdują się definicje, które są ponownie używane w sekcjach kontrolek. Przykładowo, jeśli kolorem firmy jest zielony, można zdefiniować, że cały tekst wyświetlany w kontrolce będzie zielony.
Wyzwalacze znajdują się w sekcji stylu. Wyzwalacze określają, w jaki sposób kontrolka wygląda lub działa w zależności od danej sytuacji (np. tworzenie nowego rekordu lub edycja istniejącego). Jednakże bardziej złożone zachowania są zdefiniowane w plikach PS1.
Sekcja kontrolek lub obszar układu zazwyczaj zaczyna się od kontrolki <Grid>. Siatka dzieli okno na wiersze i kolumny jak w tabeli programu Excel. Można łączyć i dzielić komórki zgodnie z wymaganiami projektu. W każdej komórce można umieścić co najmniej jedną kontrolkę, taką jak etykieta dla tekstu prostego lub pola tekstowe do wprowadzania tekstu.
Układ pliku XAML jest podobny do tabeli z wierszami i kolumnami. Dzięki temu okno dialogowe i jego kontrolki są dynamiczne, co oznacza, że po zmianie rozmiaru okna za pomocą myszy ich rozmiar jest zmieniany automatycznie. Istnieje również możliwość pracy z ustalonymi współrzędnymi, ale w tym przypadku, gdy użytkownik zmieni rozmiar okna dialogowego lub ma skonfigurowane większe czcionki w systemie Windows, kontrolki w oknie dialogowym pozostaną na swoim miejscu i potencjalnie mogą pokryć się lub nie wykorzystać dostępnego miejsca w oknie dialogowym. Z tego powodu firma Autodesk zaleca korzystanie z podejścia opartego na tabeli i umożliwienie każdej kontrolce rozwijanie się wewnątrz zdefiniowanej komórki.
Ponieważ okno dialogowe jest podobne do tabeli, podczas jego projektowania należy zastanowić się, ile kolumn i wierszy potrzeba. Zwykle dwie kolumny wystarczą: jedna z lewej strony o stałej szerokości na etykiety i jedna z prawej strony o dynamicznej szerokości dla kontrolek. Jest to także sposób tworzenia domyślnych okien dialogowych. W zależności od liczby wymaganych wierszy odpowiednie definicje wierszy są definiowane w siatce. Każda kontrolka wewnątrz siatki ma odniesienie do wiersza i kolumny (zawsze zaczynających się od 0), dzięki czemu jest odpowiednio wyświetlana.
W pliku XML i XAML każde słowo kluczowe jest osadzone w nawiasach ostrych (<słowo kluczowe>). Zwykle blok definicji rozpoczyna się od słowa kluczowego, na przykład <Grid>, i kończy się tym samym słowem kluczowym poprzedzonym ukośnikiem, na przykład </Grid>. W przypadku instrukcji w pojedynczym wierszu dostępna jest również składnia typu: <Label .../>. Dodatkowe atrybuty słowa kluczowego lub kolejne zagnieżdżone słowa kluczowe określają strukturę okna dialogowego. W pliku XAML rozróżniana jest wielkość liter, dlatego należy zwrócić uwagę na wielkie/małe litery.
Grid
Siatka (Grid) to panel układu sterujący wszystkimi elementami w strukturze tabelarycznej wierszy i kolumn. Wszystkie komórki (komórka jest unikatowa z powodu kombinacji wiersza i kolumny) mogą zawierać wiele kontrolek, takich jak etykiety i pola tekstowe.
Jest to podstawowa struktura siatki. Siatka wymaga wierszy, które można zdefiniować w części Grid.RowDefinition. Wysokość 30 określa stałą wartość wysokości i nie można jej później zmienić. Wartość „auto” umożliwia określenie dynamicznej wysokości wiersza, więc, w zależności od kontrolek, może on być wyższy lub niższy. Te same wartości dotyczą szerokości kolumny.
Po zdefiniowaniu wierszy i kolumn można dodać kontrolki, takie jak etykiety i pola tekstowe. Kontrolki muszą mieć dołączone dwie właściwości: Grid.Column i Grid.Row. Te właściwości określają położenie kontrolki w siatce. Pierwszy wiersz ma wartość 0, drugi ma wartość 1 itd.
Label
Etykiety (Label) to nazwy pól, których użytkownik nie może edytować. Zawierają one tekst określający funkcję etykiety, dzięki czemu użytkownik wie, jakiego typu wartość należy wstawić w odpowiadającym jej polu tekstowym lub polu kombi. Przykładowo etykieta o nazwie Komentarze może znajdować się obok pustego pola tekstowego. Użytkownik będzie wiedział, że może wpisać w tym polu dowolny komentarz.
Etykieta ma właściwość Content. Ta właściwość to wyświetlany tekst etykiety.
<Label Content="przykład" Grid.Row ="0" Grid.Colum="0"/>
W oknach dialogowych znajdują się domyślne ciągi kodu, takie jak: <Label Content="{Binding UIString[LBL2]}" ...>, w których właściwość Content jest powiązana ze zlokalizowanym tekstem. Ta składnia jest używana, gdy w oknie dialogowym jest wyświetlany tekst w różnych językach. Jeśli projekt wymaga tylko w jednego języka, należy ustawić tekst, który ma być wyświetlany. Jeśli okno dialogowe ma być zlokalizowane, należy użyć składni lokalizacji. Więcej informacji można znaleźć w temacie Lokalizacja.
TextBox
Pola tekstowe (TextBox) to pola, które użytkownik może edytować. W rozwiązaniu Data Standard można odczytać wprowadzoną wartość i użyć jej do wykonania innych operacji.
<ComboBox Name="PoleKombiMateriału" Text="{Binding Prop[Cost].Value}" Grid.Column="3" Grid.Row="6" ItemsSource="{Binding Prop[Cost].ListValues}"/>
Button
Przycisk (Button) to element interfejsu użytkownika umożliwiający użycie funkcji, takiej jak Wyszukaj lub Zapisz. Przycisk wymaga właściwości Command. Ta właściwość określa akcję wykonywaną po kliknięciu przycisku.
<Button Command="{Binding PsCmd[MojePolecenie]}" Grid.Column="1" Margin="0,5,0,5" Width="80">Click</Button>
Polecenie jest przypisane do słowa kluczowego PsCmd, które pomaga połączyć działanie polecenia z daną funkcją PowerShell. Możliwe jest przekazanie argumentów do funkcji za pomocą atrybutu CommandParameter="moje argumenty". Argument będzie dostępny w funkcji jako zmienna $dsParam.
Binding
Aby użyć jednego z tych komponentów do sterowania właściwościami pliku programu Vault lub wprowadzenia w nich zmian, należy zapoznać się z właściwością "{Binding Prop[myProp].Value}"
Powiązanie (Binding) umożliwia odwzorowanie wartości na określone właściwości programu CAD lub Vault. Można na przykład powiązać tekst w polu tekstowym z właściwością Title, aby po każdym wprowadzeniu danych w tym polu tekstowym właściwość Title była automatycznie aktualizowana. Powiązanie to doskonały sposób na automatyzację zmian właściwości, co ogranicza liczbę czynności wykonywanych przez użytkownika końcowego.
Prop[ ] jest podstawową funkcją w przypadku tworzenia powiązania. Dzięki niej można uzyskać dostęp do właściwości pliku (CAD i Vault) lub odpowiedniego obiektu (folder, element, obiekt niestandardowy itp.). Aby odwzorować pole tekstowe na właściwość Engineer, wpisz: <TextBox text="{Binding Prop[Engineer].Value}"/>. Po utworzeniu pola tekstowego funkcja Prop[] zwraca wartość tej właściwości. Każdorazowo podczas aktualizacji pola tekstowego powiadamia ono funkcję Prop[], która zapisuje nową wartość w odwzorowanej właściwości pliku.
Plik .xaml można edytować w programie Visual Studio. Program Visual Studio ułatwia umieszczanie elementów i pomaga uniknąć błędów pisowni.
Podczas pracy w nowym projekcie powinny być widoczne karty MainWindow.xaml, MainWindow.xam.cs i inne. Te karty nie są potrzebne, wystarczy tylko środowisko umożliwiające edycję pliku .xaml. W celu edycji pliku .xaml należy utworzyć do niego łącze. Nie trzeba dodawać pliku .xaml do projektu.
Zostanie wyświetlony błąd Problem wczytywania.
Okno dialogowe zostanie wyświetlone w oknie projektu. Można w nim wybrać obszar, a w programie Visual Studio nastąpi przejście do tej części w pliku .xaml. Rozpocznij wstawianie lub modyfikowanie pól. Zobacz sekcję Okna dialogowe rozwiązania Data Standard, aby uzyskać więcej informacji.