// init controls private void InitControls() { var networkConfiguration = (DataContext as DeviceExplorerViewModel).DeviceNetworkConfiguration; // developer note // because our IPMaskedTextBox is missing the required properties and events to support // MVVM and binding we have to use the old fashioned way of set/get properties in code behind // network config // set IPv4 addresses // DHCP ? if ((networkConfiguration.StartupAddressMode == AddressMode.DHCP) || (networkConfiguration.StartupAddressMode == AddressMode.Invalid)) { IPv4Automatic.IsChecked = true; IPv4Address.SetAddress(IPAddress.None); IPv4NetMask.SetAddress(IPAddress.None); IPv4GatewayAddress.SetAddress(IPAddress.None); } else { IPv4Manual.IsChecked = true; IPv4Address.SetAddress(networkConfiguration.IPv4Address ?? IPAddress.None); IPv4NetMask.SetAddress(networkConfiguration.IPv4NetMask ?? IPAddress.None); IPv4GatewayAddress.SetAddress(networkConfiguration.IPv4GatewayAddress ?? IPAddress.None); } // DNS is automatic? if (networkConfiguration.AutomaticDNS || networkConfiguration.IsUnknown) { IPv4DnsAutomatic.IsChecked = true; IPv4Dns1Address.SetAddress(IPAddress.None); IPv4Dns2Address.SetAddress(IPAddress.None); } else { IPv4DnsManual.IsChecked = true; IPv4Dns1Address.SetAddress(networkConfiguration.IPv4DNSAddress1 ?? IPAddress.None); IPv4Dns2Address.SetAddress(networkConfiguration.IPv4DNSAddress2 ?? IPAddress.None); } // wireless configuration/properties // get view model property var wifiProfile = (DataContext as DeviceExplorerViewModel).DeviceWireless80211Configuration; // set pass field if it's available from the model WiFiPassword.Password = wifiProfile?.Password; // if there is no valid network interface in the device: enable control for interface type selection if ((DataContext as DeviceExplorerViewModel).DeviceNetworkConfiguration.IsUnknown) { InterfaceType.IsEnabled = true; } // set focus on cancel button CancelButton.Focus(); }